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

时间:2009-07-07 16:21:28

标签: c# .net visual-studio visual-studio-2008 build-process

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

e.g.

MyApp_Debug.exe
MyApp_Release.exe

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

3 个答案:

答案 0 :(得分:34)

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

<AssemblyName Condition="'$(Configuration)'=='Debug'">MyApp_Debug.exe</AssemblyName>
<AssemblyName Condition="'$(Configuration)'=='Release'">MyApp_Release.exe</AssemblyName>

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

虽然有可能,但可能会导致问题。有一个AssemblyConfiguration属性可以应用于您的程序集。在AssemblyInfo.cs中,输入:

#if DEBUG
[assembly: AssemblyConfiguration("Debug")]
#else
[assembly: AssemblyConfiguration("Release")]
#endif

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

答案 1 :(得分:10)

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

我会推荐更简单的形式:

<AssemblyName>MyApp_$(Configuration).exe</AssemblyName>

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

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

答案 2 :(得分:-1)

我确信有,但根据我的经验,调试/发布配置的不同文件名是一个坏主意,因为它可能会导致各种问题(非常类似于VS尝试执行重命名的应用程序时的问题) )

为什么不简单地指出它在Assembly属性中的调试/发布(例如在注释中)