5

1 週間の苦労の後、IIS7 で msdeploy ハンドラーを起動しました (そのお尻のドキュメントを呪います)。したがって、単純な同期が「機能している」ことはわかっていますが、MSBUILD タスクに埋め込むのではなく、マニフェスト内の -sync パラメータの多くを移動したいと考えています。デプロイ コマンド ラインは次のとおりです。

msdeploy.exe -verb:sync 
    -source:package="D:\Projects\Packaged.zip"
    -dest:iisApp="beta.mysite.com",
        wmsvc=ops.mysite.com,
        username=deployUser,
        password=secret,
        skipAppCreation=true 
    -allowUntrusted=true

私は iisApp パスを含むマニフェストの例をたくさん見つけましたが、通常、他のビットを (私が推測している) ユーザー エントリ用のパラメーター ファイルに移動します。次のような簡単なものはありますか?

<!-- Pseudo-code manifest -->
<msdeploy.iisApp>
  <iisApp path="beta.mysite.com">
    <param key="wmsvc" value="ops.mysite.com"/>
    <param key="SkipAppCreation" value="true"/> 
    <param key="username" value="deployUser"/> 
    <param key="password" value="secret"/> 
  </iisApp> 
</msdeploy.iisApp>
4

1 に答える 1

7

まったく同じシナリオではありませんが、いくつかのアイデアが得られる可能性があります。
これは、msdeployを使用してデータベースを更新しようとしたことです。
最初に、msdeploydbFullSqlプロバイダーにSQLスクリプトを探す場所を指示するmanifest.xmlを作成しました。

<sitemanifest>
  <dbfullsql path="test1.sql"/>
  <dbfullsql path="test2.sql"/>
  <dbfullsql path="test3.sql"/>
</sitemanifest>  

次に、データベース接続文字列を指定するparameter.xmlが必要です。

<parameters>
  <parameter
     name="ConnectionString"
     value="Data Source=localhost;uid=user;password=pass;multipleactiveresultsets=false;Initial Catalog=Db_name">
  <parameterEntry type="ProviderPath" scope="dbFullSql"/>
 </parameter>

これで、マニフェストを使用してパッケージを作成する準備が整いました。

msdeploy.exe -verb:sync -source:manifest="manifest.xml" -dest:package="package.zip"

そして最後にそれを展開します:

msdeploy.exe -verb:sync -source:package="package.zip" -dest:auto -setParamFile="parameter.xml"

したがって、パラメータを別のファイルに保持する方法を確認できます。魔法!

于 2010-03-01T13:51:59.883 に答える