VS2008 - 为调试/发布配置输出不同的文件名

xyz*_*xyz 24 .net c# build-process visual-studio-2008 visual-studio

使用Visual Studio 2008构建C#应用程序时,是否可以为每个配置设置不同的输出文件名?

e.g.

MyApp_Debug.exe
MyApp_Release.exe
Run Code Online (Sandbox Code Playgroud)

我尝试了一个后期构建步骤,通过附加当前配置来重命名该文件,但这似乎是一个糟糕的方法.另外,这意味着当按F5开始调试时,Visual Studio无法再找到该文件.

adr*_*nks 34

您可以通过手动编辑项目文件来实现此目的.找到<AssemblyName>节点并为其添加条件属性:

<AssemblyName Condition="'$(Configuration)'=='Debug'">MyApp_Debug.exe</AssemblyName>
<AssemblyName Condition="'$(Configuration)'=='Release'">MyApp_Release.exe</AssemblyName>
Run Code Online (Sandbox Code Playgroud)

您还必须复制它以为发布版本添加另一个条件属性.

虽然有可能,但可能会导致问题.有一个AssemblyConfiguration可以应用到你的程序集属性.在AssemblyInfo.cs,放:

#if DEBUG
[assembly: AssemblyConfiguration("Debug")]
#else
[assembly: AssemblyConfiguration("Release")]
#endif
Run Code Online (Sandbox Code Playgroud)

这将向已编译的程序集添加一个属性,该属性将告诉您使用应用程序构建的构建配置.


Chr*_*per 10

正如adrianbanks所提到的,您可以手动编辑.csproj文件来完成此任务.

不过我会推荐更简单的形式:

<AssemblyName>MyApp_$(Configuration).exe</AssemblyName>
Run Code Online (Sandbox Code Playgroud)

但是,如果您编辑此项目的属性,则此更改很可能会丢失.这是你必须手动保持在最重要的东西,因为它不会是一个支持的设置.

要手动编辑项目定义,请在Visual Studio中右键单击项目,然后选择"卸载",然后右键单击卸载的项目,并选择"编辑",它将为您打开XML定义.

  • 这就是所有可能解决方案的问题。Visual Studio 不允许您编辑项目文件以包含 MSBuild 的全部功能。您所做的任何更改都必须在 Visual Studio 之外进行管理。至少通过此更改,您可以在 Visual Studio 中看到它的效果。 (2认同)