2012-08-01 82 views
2

我試圖使用MSDeploy與參數設置文件選項,所以我可以構建一次並通過覆蓋不同文件的參數部署到多個環境。從PowerShell中,我打電話給msdeploy。MSDeploy setParamFile不識別參數

msdeploy.exe -verb:sync ` 
-source:"contentPath='$SourceLocalPath'" ` 
-dest:"contentPath='$TargetLocalPath',computername='$TargetServer'" 
-setParamFile:"$ParamFilePath" ` 
-verbose 

這會導致關於不識別參數的錯誤。

msdeploy.exe : Error: The declared parameter 'SqlConnString' is not recognized.

如果我刪除「setParamFile」路線,它部署精細,但後來使用默認值。另外,如果我嘗試手動導入從IIS的包,它會顯示已填充默認的參數

我在Web項目的根Parameter.xml文件:

<parameters> 
    <parameter name="SqlConnString" description="Please provide the SQL connection string" defaultValue="...;Initial Catalog=xxx;server=xxx;" tags=""> 
    <parameterEntry kind="XmlFile" scope="\\web.config$" match="/configuration/connectionStrings/add[@name='Sql']/@connectionString" /> 
    </parameter> 
</parameters> 

包是在包內部創建一個... SetParameters.xml文件,其中包含我的Parameters.xml文件中的條目和標準條目。

<parameters> 
    <setParameter name="SqlConnString" value="...Initial Catalog=xxx;server=xxx;"/> 
... 
</parameters> 

謝謝

+1

您是否嘗試過使用由打包程序創建的.cmd文件?這是我做到這一點的方式,沒有任何問題找到參數。 – BNL 2012-08-01 14:13:00

+0

.cmd文件正在工作。謝謝你指點我。我想我擺脫了捱打的道路。 – 2012-08-01 14:33:02

回答

1

嘗試改變從 「SqlConnString」 到 「YourSqlConnectionName-的Web.config連接字符串」, 「名」 的值。如果你想知道確切的名字,你必須看看你的web.config文件。上面的例子應該在你的web.config文件這樣的部分工作:

<connectionStrings> 
    <add name="YourSqlConnectionName" 
     connectionString="...;Initial Catalog=xxx;server=xxx;" 
     providerName="System.Data.EntityClient"/> 
    </connectionStrings> 

所以,你應該配置如您setParameters.xml文件:

<parameters> 
    <setParameter name="YourSqlConnectionName-Web.config Connection String" value="...Initial Catalog=xxx;server=xxx;"/> 
</parameters> 

和喜歡你的parameters.xml文件:

<parameters> 
    <parameter name="YourSqlConnectionName-Web.config Connection String" description="Please provide the SQL connection string" defaultValue="...;Initial Catalog=xxx;server=xxx;" tags=""> 
    <parameterEntry kind="XmlFile" scope="\\web.config$" match="/configuration/connectionStrings/add[@name='YourSqlConnectionName']/@connectionString" /> 
    </parameter> 
</parameters> 

希望這可以解決您的問題。