3

我需要在我的网站部署后立即在 Windows 任务计划程序(Windows Server 2008 R2 上的 v2.0)中设置计划任务。

我正在使用 TFS 2010 来构建我的应用程序,显然我的 MSBuild Arguments 包含 arguments /P:DeployOnBuild=True /P:DeployTarget=MSDeployPublish /P:CreatePackageOnPublish=true /P:MSDeployPublishMethod=WMSvc

我知道我可以用来Schtasks.exe通过命令行设置计划任务,我也知道有一个runCommandMsDeploy 提供程序。所以我想我可以runCommand用来运行Schtasks.exe所需的参数。

我的问题是我如何在 TFS 和 MsBuild 中做到这一点。我以为我可以将一些参数传递给 MsBuild,它们会“按原样”传递给 MsDeploy,但我找不到我是如何做到的。

4

1 回答 1

1

如果必须在构建之后,则需要使用postSyncmsdeploy 参数来执行runCommand. 由于postSyncVisual Studio 的 MSBuild 任务不可用,因此您需要生成一个包,然后运行生成的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 回答