【问题标题】:How to change executable name for a specific configuration in VS2015如何在 VS2015 中更改特定配置的可执行文件名称
【发布时间】:2018-08-18 19:00:12
【问题描述】:

我需要根据使用的配置动态更改已编译项目(在 VS 2015 中)的可执行名称。 例如。在发布模式下,结果必须是 release.exe,在调试模式下 - debug.exe。

我知道我可以在 .csproj 中更改 <AssemblyName>,但问题是我必须保持程序集名称不变。

【问题讨论】:

    标签: visual-studio visual-studio-2015 msbuild


    【解决方案1】:

    我知道我可以在 .csproj 中进行更改但问题是我必须保持程序集名称不变。

    由于您必须保持程序集名称不变,您可以尝试将复制目标添加到您的项目中以重命名可执行文件名称。

    要完成此操作,请卸载您的项目。然后在项目的最后,就在结束标记 </project> 之前,放置以下脚本:

      <Target Name="AfterBuild">
        <Copy SourceFiles="$(TargetPath)" DestinationFiles="$(TargetDir)$(Configuration).exe" Condition="'$(Configuration)' == 'Debug'"/>
        <Delete Files="$(TargetPath)" Condition="'$(Configuration)' == 'Debug'"/>
      </Target>
    

    如果您还想重命名输出中的其他文件,可以将自定义目标更改为:

    <Target Name="AfterBuild">
        <Copy SourceFiles="$(TargetDir)$(AssemblyName).exe" DestinationFiles="$(TargetDir)$(Configuration).exe" Condition="'$(Configuration)' == 'Debug'"/>
        <Copy SourceFiles="$(TargetDir)$(AssemblyName).exe.config" DestinationFiles="$(TargetDir)$(Configuration).exe.config" Condition="'$(Configuration)' == 'Debug'"/>
        <Copy SourceFiles="$(TargetDir)$(AssemblyName).pdb" DestinationFiles="$(TargetDir)$(Configuration).pdb" Condition="'$(Configuration)' == 'Debug'"/>
        <Delete Files="$(TargetDir)$(AssemblyName).exe" Condition="'$(Configuration)' == 'Debug'"/>
        <Delete Files="$(TargetDir)$(AssemblyName).exe.config" Condition="'$(Configuration)' == 'Debug'"/>
        <Delete Files="$(TargetDir)$(AssemblyName).pdb" Condition="'$(Configuration)' == 'Debug'"/>
    </Target>
    

    希望这会有所帮助。

    【讨论】:

    • 是的,这与我使用的方法几乎相同(您只是忘记检查配置,因为我只需要针对特定​​配置执行操作)
    • @LeonidMalyshev,是的,我不知道您是否将此操作用于特定配置,所以我不添加条件。现在我已经更新了我的答案,你可以检查它是否工作正常。如果它有效,您可以接受它作为答案,这可能对阅读此线程的其他社区成员有益。或者您可以在这里分享您的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多