2009-07-07 49 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定義。

相關問題