Asp.net
部署時的 web.config 轉換未建構
我想知道如何執行以下操作
- 建構並打包一個 ASP.NET 網站到文件系統
- 能夠將網站部署到一個或多個環境。我希望配置文件的轉換發生在部署點,而不是在建構點。這樣,我的程式碼不會為每個部署重新編譯,並且不存在引入新更改的風險。
根據我自己的閱讀,我不確定如何做到這一點。WebDeploy 似乎基於配置打包、轉換和部署,但我不確定如何將這些步驟解耦以避免需要從原始碼控制重新編譯程式碼。
有沒有人有解決這個問題的經驗?
您可以使用 web deploy aka MSDeploy 的參數化功能。您將需要使用 parameters.xml 文件和 setParameters.xml 文件來動態換出設置,因為您沒有在建構時轉換您的包。
在部署時,您可以傳入任何 .xml 文件來設置您在 parameters.xml 文件中指定的參數。由於parameters.xml 位於您的項目解決方案的根目錄(例如,請參閱文件放置位置的範例連結),因此在建構時它會被烘焙到您的Web 包中。但是,您現在可以通過在部署期間從命令行傳入 setParms .xml 文件來靈活地更改這些值。這與在建構期間根據配置設置轉換值不同。
這是一個 msdeploy 命令行範例,用於為暫存環境傳入 ParamFile。
msdeploy -verb:sync -source:package="c:\packages\mypackage.zip" -dest:auto,computername=StagingServer1 -setParamFile="c:\StagingParameters.xml"有關範例和 MSDN 技術資訊,請參見以下連結: