2010-09-10 48 views
2

如何配置我的Visual Studio 2010的C#解決方案/項目,以便 ,當我選擇調試配置 - ConnectionString的#1將用於 發佈 - 連接字符串#2 和 「Myconfiguarion1 「(這是從調試複製) - >連接字符串#3不同configuaration串

我上去的時候,以這樣的方式與調試工作:

if (ConfigurationManager.ConnectionStrings["ConnectionString1"] != null) 
{ 
    winApplication.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString1"].ConnectionString; 
} 

#if DEBUG 
if(ConfigurationManager.ConnectionStrings["ConnectionString2"] != null) 
{ 
    winApplication.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString; 
} 
#endif 

但這並不與工作‘MybuildConfiguration’

+0

我聽說Entenprise圖書館在這個領域有一些東西可以提供。但可以很快找到有關它的信息。 – Marty 2010-09-10 13:20:37

回答

4

如果您正在嘗試爲Visual Studio 2010中的ASP.NET項目的web.config文件執行此操作,則它是通過XML轉換爲web.config進行內置的。

Web Deployment: Web.Config Transformations

如果你想爲一個app.config文件做到這一點,你可以使用相同的變換,但與他們的合作是一個黑客位的:

Visual Studio App.config XML Transformations

都歸結爲實際使用單獨的配置文件爲您將運行您的應用程序的不同的環境。這允許您根據您運行的環境爲任何鍵提供不同的值。

+0

在連接站點有一個活動問題來支持app.config,就像web.config一樣。投票在這裏:https://connect.microsoft.com/VisualStudio/feedback/details/564414/support-for-transforming-app-config-files-in-the-same-way-web-config-files-can-be -transformed-per-configuration?wa = wsignin1.0 – veljkoz 2010-09-10 13:49:09

+0

謝謝。會嘗試。 – Marty 2010-09-13 09:19:54

+0

這是否適用於.net 3.5 sp1? – Marty 2010-09-13 10:14:21

2

我認爲你可以使用條件編譯常量。要定義它們, 必須打開項目屬性窗口,選擇編輯選項卡,並在條件常量字段中定義一個名稱,例如CONN1。

這個常數只得到定義爲您的活動構建配置,這樣你就可以定義爲CONN1調試配置,CONN2對於Release配置,CONN3您的自定義配置等

然後,在你的代碼,你可以使用:

#ifdef CONN1 
//use connection 1 
#else 
#ifdef CONN2 
    //use connection 2 

#else 
    //use connection 3 

#endif 
#endif 
+0

Thanx :)這是一個有用的提示。 – Marty 2010-09-13 09:20:44

+0

但編譯器編譯器常量不會影響webconfig,請參閱:http://haacked.com/archive/2007/09/16/conditional-compilation-constants-and-asp.net.aspx。但是,Allen說你可以改變常量從webconfig。http://odetocode.com/blogs/scott/archive/2005/12/01/conditional-compilation-in-asp-net-2-0.aspx – 2012-01-10 21:39:25