在使用Visual Studio 2008构建C#应用程序时,是否可以针对每个配置设置不同的输出文件名?
e.g.
MyApp_Debug.exe
MyApp_Release.exe
我尝试了一个在编译后重命名文件的步骤,方法是添加当前配置,但这似乎是一种不太好的方式。此外,这意味着当按下F5开始调试时,Visual Studio无法找到该文件。
在使用Visual Studio 2008构建C#应用程序时,是否可以针对每个配置设置不同的输出文件名?
e.g.
MyApp_Debug.exe
MyApp_Release.exe
我尝试了一个在编译后重命名文件的步骤,方法是添加当前配置,但这似乎是一种不太好的方式。此外,这意味着当按下F5开始调试时,Visual Studio无法找到该文件。
<AssemblyName>
节点,并向其添加一个条件属性:<AssemblyName Condition="'$(Configuration)'=='Debug'">MyApp_Debug.exe</AssemblyName>
<AssemblyName Condition="'$(Configuration)'=='Release'">MyApp_Release.exe</AssemblyName>
你需要复制它,同时为发布版本添加另一个条件属性。AssemblyInfo.cs
中加入:#if DEBUG
[assembly: AssemblyConfiguration("Debug")]
#else
[assembly: AssemblyConfiguration("Release")]
#endif
这将向您编译的程序集中添加一个属性,该属性将告诉您使用了哪个生成配置来构建您的应用程序。
[assembly: AssemblyConfiguration("")]
。但是,我必须将AssemblyName
语句移动到现有的带条件的属性组中,而不是直接在AssemblyName上放置条件。 - Denise Skidmore正如adrianbanks所提到的,您可以手动编辑.csproj文件来实现此目的。
然而,我建议采用更简单的方法:
<AssemblyName>MyApp_$(Configuration).exe</AssemblyName>
如果你编辑该项目的属性,这个更改很可能会丢失。这是一个不被支持的设置,你需要手动去跟进它。要手动编辑项目定义,在Visual Studio中右键单击项目,选择“卸载”,然后右键单击已卸载的项目,选择“编辑”,就可以打开XML定义。我相信有这种做法,但是根据我的经验,为调试/发布配置使用不同的文件名是一个坏主意,因为它可能会引起各种问题(非常像VS在尝试执行重命名应用程序时遇到的问题)
为什么不在程序集属性中简单地指示它是调试/发布版本(例如在注释中)呢?