3

Web サイトを展開した直後に、Windows タスク スケジューラ (Windows Server 2008 R2 の v2.0) でスケジュールされたタスクをセットアップする必要があります。

TFS 2010 を使用してアプリケーションをビルドしていますが、MSBuild Arguments には arguments が含まれているよう/P:DeployOnBuild=True /P:DeployTarget=MSDeployPublish /P:CreatePackageOnPublish=true /P:MSDeployPublishMethod=WMSvcです。

コマンドラインからスケジュールされたタスクをセットアップするために使用できることを知っています。また、MsDeploySchtasks.exeのプロバイダーがあることも知っています。そのため、必要なパラメーターを使用して実行runCommandできると考えました。runCommandSchtasks.exe

私の質問は、TFS と MsBuild でそれを行う方法です。いくつかのパラメーターを MsBuild に渡すことができ、それらは「そのまま」MsDeploy に転送されると想定していましたが、その方法を見つけることができませんでした。

4

1 に答える 1

1

ビルド後に行う必要がある場合は、 postSyncmsdeploy 引数を使用してrunCommand. は Visual Studio の MSBuild タスクからは利用できないためpostSync、パッケージを生成し、生成されたcmdファイルpostSyncの末尾に引数を付けて実行する必要があります。

Package.cmd -postSync:runCommand="c:\windows\system32\schtasks.exe arguments"

ビルド後に行う必要がある場合は、発行プロファイル ( pubxml)、.wpp.targetsファイル、またはプロジェクト ファイルに次を追加することで、追加の提供を含めることができます。

<ItemGroup>
  <MsDeploySourceManifest Include="runCommand">
    <Path>&quot;c:\Windows\system32\schtasks.exe&quot; &quot;Arguments here&quot;</Path>
  </MsDeploySourceManifest>
</ItemGroup>

プロバイダーが順番に実行されることを公式に保証するものではありませんが、実際にはそうです。ただし、他のプロバイダーのrunCommand に登録できるように、ターゲットを適切なイベントにフックする必要がある場合があります。

于 2013-04-24T03:35:11.820 に答える