當我開發我的web應用程序 - 開發,UAT和Prod時,我需要在3種不同的環境中切換。我在所有配置文件中都有不同的數據庫連接3.我已經看到,通過更改所有引用,然後重新構建解決方案,並使用預處理器指令完成手動切換這些設置。有沒有簡單的方法可以根據某個變量來做到這一點,以便每次部署到新環境時都不必修改配置?在ASP.NET中的開發/ UAT/Prod環境之間切換配置的最佳方式?
回答
對我來說,似乎可以從Visual Studio 2005 Web Deployment Project的利益。
這樣,你可以告訴它根據構建配置更新/修改web.config文件的各個部分。
查看this blog entry from Scott Gu以獲得快速概覽/樣本。
斯科特Hanselman有建議要做到這一點的一種方法:
http://www.hanselman.com/blog/ManagingMultipleConfigurationFileEnvironmentsWithPreBuildEvents.aspx
我已採用更改配置的Jean Paul Boodhoo Method。 一般的想法是有一個或多個TOKENIZED配置文件,而不是配置文件本身。然後,您有一個構建腳本任務,它使用SINGLE本地屬性文件中的值替換這些標記。此屬性文件包含配置中的所有差異,並且每個工作副本都是唯一的。
這個系統對我來說很好,一旦初始化設置對管理環境變化來說是輕而易舉的。
我使用的MSBuild的大風扇,特別是社區的MSBuild任務(http://msbuildtasks.tigris.org/),並有一個XSLT任務使用適當的連接字符串的設置進行改造的web.config等
我一直這些任務的方便:
<Target Name="Configs">
<Xslt RootTag="" Inputs="web.config" Output="Web.$(COMPUTERNAME).config" Xsl="web.config.$(COMPUTERNAME).xslt" Condition="Exists('web.config.$(COMPUTERNAME).xslt')" />
顯然,這不是100%,你以後,它是如此的每個開發可以有自己的web.c onfig。
但是沒有理由不能使用上述原則來使用適用於正確XSLT的多個構建配置。
我的XSLT是這樣的:
<?xml version="1.0" encoding="utf-8"?>
<!-- Dev -->
<xsl:template match="/configuration/connectionStrings/add[@name='MyConnectionString']/@connectionString">
<xsl:attribute name="connectionString">Data Source=MyServer;Initial Catalog=MyBD;User ID=user;password=pwd</xsl:attribute>
</xsl:template>
<xsl:template match="node()">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
您可以隨時使用楠+ NAnt.Contrib在生成過程中修改Web.config。 NAnt有xmlpeek和xmlpoke任務,允許您更新xml文件。
例如
< xmlpoke file =「$ {dist.dir} /Web.config」 xpath =「/ configuration/applicationSettings/MyProj.Web.Properties。設置/設置[@name ='MyProj_Web_Service'] /值「 value =」http:// $ {AppServer} /Service.asmx「/ >
- 1. 在Git中產品和開發配置之間切換的最佳方法
- 2. 什麼是爲Sitecore設置開發環境的最佳方式
- 3. 在PHP中切換開發數據庫的最佳方式?
- 4. .NET開發環境的最佳Windows Server 2008配置是什麼?
- 5. 如何在開發環境和產品環境之間輕鬆切換
- 6. 在模型之間切換的最佳方式
- 7. 在兩個片段之間切換的最佳方式
- 8. 在Mac上設置PHP開發環境的最佳方式是什麼?
- 9. 在laravel 5中配置測試環境的最佳方式是什麼?
- 10. 在java中處理環境特定配置的最佳方式是什麼?
- 11. 在GWT中切換開發和生產配置的最佳實踐?
- 12. 爲不同環境配置Cookie的最佳方法
- 13. 在開發人員配置文件與配送配置文件之間切換
- 14. 最佳黑莓開發環境
- 15. 環境之間的配置推廣
- 16. 調試配置之間的快捷方式切換
- 17. iPhone - 在本地和生產環境設置之間切換
- 18. 預配置的開發環境圖像
- 19. 開發環境和API開發的最佳實踐?
- 20. 用於開發和部署的靜態資產和基於CDN的資產之間切換的最佳方式
- 21. JUnit + DbUnit:在開發和測試環境之間切換數據庫連接
- 22. SSIS 2012 - 項目包環境連接配置的最佳模式
- 23. 在UISplitViewController和其他視圖控制器之間切換的最佳方式?
- 24. 在視圖之間滑動/切換的最佳方式是什麼? (Custom Launcher)
- 25. 什麼是配置RubyMotion應用程序以用於開發,測試和生產環境的最佳方式
- 26. 標準化小團隊開發環境的最佳方式是什麼?
- 27. 如何設置ASP.NET開發環境?
- 28. 將環境變量傳遞給多個配置文件的最佳方式
- 29. 在PySpark環境中創建緩存的最佳方式
- 30. 開始在Mac上設置Mono for ASP.NET的最佳方式
我在該頁面上收到404。能夠總結一下嗎? – 2008-09-25 12:08:08
如果你把'n'粘貼上去,沒有什麼問題,非常奇怪...... – 2008-09-25 12:13:18
Wierd - 也許Scott在做引用程序檢查? – Whisk 2008-09-25 12:21:17