5

當我在本地運行時,我發現自己不得不手動更新我的web.config中的DefaultConnection連接字符串。我怎樣才能自動檢測當我在本地運行,以及 - 當我在 - 覆蓋默認連接字符串?如何爲我的本地機器設置不同的web.config設置?

我有調試/版本轉換工作,但這些是爲了部署。我正在尋找一種方法來添加另一個選項 - 「本地」 - 如果有任何方法來做到這一點(或類似的東西)。

回答

6

您需要添加解決方案配置才能添加web.config轉換。

  • 右鍵單擊您的解決方案(在解決方案資源管理)
  • 選擇「配置管理器」,然後在「活動解決方案 配置」下拉列表中,點擊新的。
  • 輸入配置名稱(如「本地」例如)從調試
  • 複印設置(似乎更適合於開發)
  • 選中「創建新的項目配置」。

設置你的項目配置,當你完成後,右鍵點擊web.config,選擇「添加變換」,你很好走!

然後,當你想使用你的本地連接字符串時,只需使用這個配置而不是調試。

+0

謝謝!儘管現在我遇到了一個問題,那就是我的本地轉換沒有得到應用。如果你有一分鐘​​,我已經問過一個單獨的問題:http://stackoverflow.com/questions/19301002/applying-web-config-transformations-locally – RobVious

+0

你使用卡西尼或IIS或IIS Express嗎? @Citronas在下面解釋了這個權利:http://stackoverflow.com/a/19294757/375304 – CharlesAD

+0

爲什麼這個答案被接受? OP表示他擁有網絡。config轉換工作,這個答案描述瞭如何創建web.config變換 – citronas

2

這取決於你如何調試。如果您使用的是Cassini,則無論您選擇哪種解決方案配置(例如Debug或Release),afaik都會讀取您的web.config內容。

如果您使用本地IIS進行調試,則取決於您在IIS中設置的路徑。如果您已將其設置爲源代碼目錄,則需要將您的本地設置寫入web.config。如果您將代碼發佈到本地目錄並相應地設置IIS路徑,則可以使用web.config轉換。 (你說,你的web.config轉換工作)

對於其他未來的讀者:
我建議如下:在你的web.config中有你的調試設置。使用「發佈」設置(Web.Release.Config)創建解決方案配置,用於發佈過程。

查看http://www.tomot.de/en-us/article/5/asp.net/how-to-use-web.config-transforms-to-replace-appsettings-and-connectionstrings瞭解VS. 2010的web.config轉換教程。儘管VS 2012中的發佈對話框發生了變化,但您應該能夠將指南改編爲新版本。

+0

提供的鏈接真的很有用。 –

相關問題