1

アプリケーション プール 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 がこれらの行を削除しないようにする方法はありますか?

これを機能させるために過去数日を費やしましたが、遭遇した例ではこれを解決できませんでした。

誰かが何らかの洞察を持っていることを願っています。

4

1 に答える 1

3

やっと問題発見!

パラメータが定義された方法でした。Parameters.xml を見ると、次を使用してすべてを定義しています。

<parameterEntry type=

すべての「タイプ」を「種類」に変更すると、正しいパッケージ parameters.xml が生成され、アプリケーション ID の突っ込みが可能になります。

これは、IIS フォーラムに投稿されたコードを使用したためです。

http://forums.iis.net/t/1176867.aspx

これは、このアプリケーションでは正しくないようです。それがバージョンの違いなのか、それとも何か他のものなのかはわかりません。

于 2013-11-15T14:49:35.683 に答える