使用Visual Studio 2008构建C#应用程序时,是否可以为每个配置设置不同的输出文件名?
e.g.
MyApp_Debug.exe
MyApp_Release.exe
我尝试了一个后期构建步骤,通过附加当前配置来重命名该文件,但这似乎是一种糟糕的方法。另外,这意味着当按F5开始调试时,Visual Studio无法再找到该文件。
答案 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属性中的调试/发布(例如在注释中)