如何在VS2015中更改特定配置的可执行文件名称

时间:2018-03-10 08:00:57

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

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

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

1 个答案:

答案 0 :(得分:0)

  

我知道我可以更改.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>

希望这有帮助。