2012-07-25 63 views
4

我一直在使用web.config轉換一段時間,用於部署我們的一些項目。 什麼我現在想實現,是有Web部署的「導入包」屏幕提示,檢查&更新中的幾個變量,調整爲每個環境混合web.config轉換和Parameters.xml,或者這個效果

我知道我可以使用Parameters.xml介紹這些可編輯的變量,但我還沒有找到如何有更新的不同環境目標的默認值。

考慮希望有用戶編輯的「specialServer」 AppSetting以下整齊,但不重疊的例子,並具有將其呈現一個不同的缺省編爲NewEnv目標時:

在樣品的parameters.xml條目:

<parameter name="Special server" description="" tags="" defaultValue="server1-dev.domain"> 
    <parameterEntry kind="XmlFile" scope="\\web.config$" match="/configuration/appSettings/add[@key='specialServer']/@value" /> 
</parameter> 

樣品變換Web.NewEnv.config,設置不同的值

<appSettings> 
    <add key="specialServer" 
     value="other-server.domain2" 
     xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/> 
</appSettings> 

樣品在網絡部署的提示:

enter image description here

任何建議,如何更新不同的構建目標的默認值?

謝謝。

回答

1

你將不得不產生和新的參數定義文件並將它嵌入在你的WebDeploy包爲每個環境。

這會給你每環境不同的部署包,將允許您爲這些參數指定不同的默認值。顯然,如果參數轉換並且基本上最終會在您的配置中進行烘焙,那麼這樣做會破壞這一點,但這是實現所需內容的唯一方法。

我不推薦這種方法,但它可能適合您的需求。

1

我們使用批處理腳本來調用msdeploy。它允許parm指定Parameters.xml文件。然後使用多個Parameters.xml文件(每個環境一個),可以調用msdeploy,如下所示:

「C:\ Program Files \ IIS \ Microsoft Web Deploy V3 \ msdeploy.exe」-source:package ='D: \ mysite.zip」 -dest:汽車,計算機名= 「testcomp1」,includeAcls = 「假」 -verb:同步-disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:「d:\ mysite.test.SetParameters。 xml「