パラメーター設定ファイル オプションを指定して 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>
ありがとうございました