【问题标题】:change multi-target project output path and file name更改多目标项目输出路径和文件名
【发布时间】:2021-01-06 15:58:41
【问题描述】:

我在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 目标框架

【问题讨论】:

    标签: .net visual-studio msbuild


    【解决方案1】:

    添加几个指令

    <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

    在初始 &lt;PropertyGroup&gt; 中使用 &lt;AppendTargetFrameworkToOutputPath&gt;false&lt;/AppendTargetFrameworkToOutputPath&gt; 以删除将文件夹结构添加到输出中

    【讨论】:

    • 我试图设置 D:\bin\app-net48 但VS将exe创建为“D:\bin\net5.0 -windows\app-net48.exe”而不是“D:\bin\app-net48.exe”
    • @geek175 有一个不同的开关来停止添加目标框架文件夹
    • @geek175 &lt;AppendTargetFrameworkToOutputPath&gt;false&lt;/AppendTargetFrameworkToOutputPath&gt;
    • 像魅力一样工作,请从 属性中删除“.exe”,并将 添加到答案中,以便我检查它。
    猜你喜欢
    • 2016-10-05
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    相关资源
    最近更新 更多