2

マニフェスト ファイルで runCommand プロバイダーを使用して、msdeploy を介した展開プロセスの一部として、バッチ スクリプトの実行を含めようとしています (さらに、これを理解できる場合)。

これは私のマニフェストファイルがどのように見えるかです

<MSDeploy.iisApp>
  <iisapp path="Default Web Site/SiteName" />

  <dbfullSql path="msdeploy.config" transacted="false" />
  ...(more calls to providers)

  <runCommand path="(call to batch script here)" />
</MSDeploy.iisApp>

マニフェスト ファイル内のすべてが正常に実行されますが、コマンドが実際に実行されているようには見えません。出力のログは、私のコマンドが呼び出されるべきであった最後にこれを示します。

Info: Adding child runcommand (MSDeploy.iisApp/runCommand).
Verbose: The synchronization completed in 1 pass(es).
Total changes: 85 (82 added, 3 deleted, 0 updated, 0 parameters changed, 0 bytes copied)

次のコマンドを使用して msdeploy を実行します。

"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -verb:sync -source:package="package" -dest:iisApp="Default Web Site/SiteName" -setParam:name=bunch of parameters... -debug -verbose > MsDeployOutput.txt

マニフェスト ファイル (ソース パッケージにもあります) に与えたコマンドは (どのような方法であれ) 認識されますが、実行されることはありません。原因と解決策についてのアイデアはありますか?

4

2 に答える 2

3

MsDeploy には、パッケージのコンテンツを展開する自動プロバイダーもあります。したがって、コマンドラインを次のように変更する必要があります

"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -verb:sync -source:package="package" -dest:auto -setParam:name=パラメータの束... -debug -verbose > MsDeployOutput 。TXT

また、マニフェストを有効にしたい場合は、コマンドラインを次のように変更する必要があります

"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -verb:sync -source:package="package" -dest:manifest="manifestLocation" -setParam:name=パラメータの束... -debug -verbose > MsDeployOutput.txt

MsDeploy はその魔法を実行します。

ありがとう、

于 2009-10-30T08:05:19.517 に答える
1

runCommand プロバイダーにバグがあります。これを回避するには、この属性 MSDeploy.MSDeployKeyAttributeName="path"を使用します。

このような:<runCommand path="(call to batch script here)" MSDeploy.MSDeployKeyAttributeName="path" />

于 2011-02-03T14:33:06.707 に答える