我正在尝试将 MSDeploy 与参数设置文件选项一起使用,这样我就可以通过使用不同文件覆盖参数来构建一次并部署到多个环境。我从 PowerShell 调用 msdeploy。
msdeploy.exe -verb:sync `
-source:"contentPath='$SourceLocalPath'" `
-dest:"contentPath='$TargetLocalPath',computername='$TargetServer'"
-setParamFile:"$ParamFilePath" `
-verbose
这会导致无法识别参数的错误。
msdeploy.exe:错误:无法识别声明的参数“SqlConnString”。
如果我删除“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>
谢谢