2013-07-26 44 views
1

是否有方法從MSDeploy包中生成的SetParameters.xml中刪除參數。從生成的setParameters.xml中刪除參數

我的parameters.xml看起來是這樣的:

<parameter name="Server" defaultValue="" /> 
<parameter name="Directory" defaultValue="" /> 
<parameter name="Service URL" defaultValue="http://{Server}/{Directory}/Services/GeneralIntegrationService.svc" tags="hidden"> 
<parameterEntry kind="XmlFile" scope="Web.config" match="//system.serviceModel/client/endpoint[@name='BasicHttpBinding_IGeneralIntegrationService']/@address" /> 

什麼,我要的是生成的SetParameters.xml只包含第2個參數。

我查看了這個問題: Can MSBuild exclude "Hidden" Web Deploy parameters from the generated SetParameters.xml?

但是,我不能讓我的頭周圍的.targets文件應該如何設置。有人可以詳細說明parameters.xml和.targets文件的完整示例。另外,有什麼我需要在.targets文件的構建屬性中設置?

+0

爲什麼不做你不想在配置轉換中的參數? – cederlof

+0

這個想法是使用msbuild輕鬆地創建一個包,可以通過webui部署,或使用setparameters。這允許用戶比較2個setparameters文件以查看新版本中的更改。我不知道如何通過轉換來實現這一目標,但答案是合適的,我會接受它。 – Martin

回答

0

我不認爲SetParameters方法被設計用於這種方式。我將使用config-transforms作爲要從安裝應用程序的人員隱藏的參數。

編輯 實際上,對於你的情況,你可以做一個 「查找和替換」,在web.config中獲得所需的結果

在你的parameters.xml

<parameters> 
    <parameter name="Server" description="" defaultValue="" tags=""> 
     <parameterEntry kind="TextFile" scope="\\web.config$" match="@@[email protected]@" /> 
    </parameter> 
    <parameter name="Directory" description="" defaultValue="" tags=""> 
     <parameterEntry kind="TextFile" scope="\\web.config$" match="@@[email protected]@" /> 
    </parameter> 
</parameters> 

並且您需要Web.Config中的端點地址,只需將URL如下所示:

http://@@[email protected]@/@@[email protected]@/Services/GeneralIntegrationService.svc 
+0

如果我願意接受這一點,我需要更多信息,可能是一個示例。我確實設法通過.targets最終完成它,但是您的解決方案聽起來很有趣 – Martin

+0

@Martin我剛剛添加了另一個簡單的解決方案。 – cederlof

+0

這看起來很完美,是他們在這方面的文檔,努力找到任何。 – Martin