2009-07-07 34 views
24

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

e.g. 

MyApp_Debug.exe 
MyApp_Release.exe 

我试图通过追加当前配置来重命名文件的后生成步骤,但似乎是一个令人费解的方法。此外,这意味着当按F5开始调试时,Visual Studio不能再找到该文件。

+2

请参阅:http://stackoverflow.com/questions/893003/change-assembly-name-based-on-configuration-visual-studio-2005/893238#893238 – 2009-07-07 16:27:22

回答

33

您可以通过手动编辑您的项目文件来实现此目的。找到<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 

这将属性添加到您的编译组件会告诉你哪个构建配置您的应用程序是使用内置。

+0

好奇...不是Visual Studio已经添加AssemblyConfiguration然后你做一个构建? – cecilphillip 2014-09-22 14:03:29

+0

我不必添加手动AssemblyConfiguration线来完成这项工作。 AssemblyInfo.cs使用`[assembly:AssemblyConfiguration(“”)]`但我必须将`AssemblyName`语句移动到现有的属性组中,而不是将条件直接放在AssemblyName上。 – 2015-09-16 14:11:07

-1

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

为什么不直接表明在大会的调试/释放与否属性(例如在评论)

10

正如adrianbanks提到的,你可以通过手工编辑的.csproj文件来实现这一点。

我会,但是reccomend的简单的形式:

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

如果你修改这个项目然而,这种变化将很可能丢失的特性。这是你必须手动停留在顶部,因为它不会成为受支持的设置。

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

相关问题