アプリケーション プール ID の値を入力できるように、msbuild に正しい Web デプロイ パッケージを生成させようとしています。
私のプロジェクトには、ユーザーとパスワードの次のエントリを含む parametes.xml があります。
<parameter name="username" description="AppPool identity username" defaultValue="domain\username">
<parameterValidation type="RegularExpression" validationString="(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$" />
<parameterEntry type="DeploymentObjectAttribute" scope="processModel" match="/processModel/@userName" />
</parameter>
<parameter name="password" description="AppPool identity password" tags="password" defaultValue="DefaultPassword">
<parameterEntry type="DeploymentObjectAttribute" scope="processModel" match="/processModel/@password" />
</parameter>
私が使用するmsbuildコマンド:
"C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/MSBuild.exe" "./TestSolution.sln"
/p:configuration="Release"
/p:outdir=".././deploy/Packages/Release"
/target:clean;build
/p:DeployOnBuild=true;
DeployTarget=Package;
IncludeAppPool=true;
IncludeIisSettings=true;
DeployEncryptKey=Password
パッケージは正しく生成されますが、zip フォルダー内に配置された新しい parameters.xml に問題があります。ユーザー名/パスワードのエントリが次のように変更されました。
<parameter name="Username" description="Identity Username" defaultValue="domain\username" />
<parameter name="Password" description="Identity Username Password" defaultValue="DefaultPassword" tags="password" />
ご覧のとおり、parameterEntry と Validation は削除されています。msdeploy を使用してアプリケーションをデプロイし、SetParameters でユーザー名とパスワードを設定しようとすると、ApplicationPool の新しい値が取得されません。
削除した行をパッケージに手動で追加すると、展開は正しく機能し、アプリケーション プールは SetParameters ファイルで設定された ID を取得します。
これは設計によるものですか?パッケージをビルドするときに msdeploy がこれらの行を削除しないようにする方法はありますか?
これを機能させるために過去数日を費やしましたが、遭遇した例ではこれを解決できませんでした。
誰かが何らかの洞察を持っていることを願っています。