更改多目标项目输出路径和文件名

change multi-target project output path and file name

我在 D:\dev\app 中有一个配置如下的项目:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

    <PropertyGroup>
        <OutputType>WinExe</OutputType>
        <TargetFrameworks>net48;net5.0-windows</TargetFrameworks>
        <UseWindowsForms>true</UseWindowsForms>
    </PropertyGroup>
    
</Project>

我应该添加什么来强制VS生成如下exe文件:

D:\bin\app-net48.exe 用于 net48 目标框架

D:\bin\app-net50.exe 用于 net5.0-windows 目标框架

添加几个指令

<PropertyGroup Condition="'$(TargetFramework)'=='net48'">
    <AssemblyName>app-net48</AssemblyName>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)'=='net5.0-windows'">
    <AssemblyName>app-net50</AssemblyName>
</PropertyGroup>

当然,你也可以使用

<Choose>
   <When Condition="....">
      <PropertyGroup>
      </PropertyGroup>
   </When>
   <When Condition="....">
      <PropertyGroup>
      </PropertyGroup>
   </When>
</Choose>

Reference link

在初始 <PropertyGroup> 中使用 <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath> 删除向输出添加文件夹结构