2008-12-03 49 views
3

有沒有辦法針對每個生成配置有不同的應用程序設置?C#VS.NET 2008更改每個配置的設置

我希望能夠用不同的設置批量生成一些配置,而不必更改設置和構建,漂洗重複。

在此先感謝!

+0

看到這個問題:http://stackoverflow.com/questions/96340/best-approach-for-configuring-multiple-net-applications – Hallgrim 2008-12-03 19:13:04

回答

1

我對appsettings架構不太瞭解(我從來沒有真正使用它),但是您可以使用一些MSBuild魔法爲常量定義不同的值。

創建兩個.cs文件,Constants1.cs和Constants2.cs(或在您的配置之後命名它們)。

在每個文件中,定義一個名爲Constants(或其他)的類 - 但是這樣做就好像每個文件是唯一的定義(即使用相同的類名稱)。通常情況下,這應該只是定義public static readonly字段 - 做而不是使用const,因爲這可能會讓您陷入部分構建問題。

現在卸載您的項目文件並編輯它。發現,像這樣的條目:

 
    <Compile Include="Constants1.cs" /> 
    <Compile Include="Constants2.cs" /> 

並改變它們像這樣:

 
    <Compile Include="Constants1.cs" Condition="'$(Configuration)'=='Debug'" /> 
    <Compile Include="Constants2.cs" Condition="'$(Configuration)'=='Release'" /> 

最後保存和重新加載您的項目。現在只有一個文件實際上會一次構建,具體取決於您的構建配置。

+0

真棒,感謝miral! – user42931 2008-12-06 00:08:50

0

您可以添加一個預構建或postbuild任務到proj,您可以從那裏訪問ConfigurationName。將是相當容易做到的東西,如「複製Web.config.debug Web.config中」

0

除了所有這些,MS承諾在VS添加這一功能2010

0

你是什麼意思下的「應用程序設置」 ?項目的每個配置的屬性,如調試或發佈?或者每個人都有自己的app.conf文件?

如果首先,您可以使用合適的設置創建大量配置,並使用批量構建輪流構建它們。 http://msdn.microsoft.com/en-us/library/169az28z.aspx

或谷歌忍者說,使用預構建的任務: 德爾Web.config中的app.config 複製Web.config.Debug的Web.config (創建之前的一些配置文件)