2013-04-23 244 views
2

我需要在我的網站部署後立即在Windows任務計劃程序(Windows Server 2008 R2上的v2.0)中設置計劃任務。部署後部署任務

我使用2010 TFS構建我的應用程序,顯然我的MSBuild參數包含參數/P:DeployOnBuild=True /P:DeployTarget=MSDeployPublish /P:CreatePackageOnPublish=true /P:MSDeployPublishMethod=WMSvc

我知道我可以使用Schtasks.exe通過命令行設置計劃任務,我也知道有一個用於MsDeploy的runCommand提供程序。所以我想我可以使用runCommand運行Schtasks.exe與所需的參數。

我的問題是我如何在TFS和MsBuild中做到這一點。我假設我可以將一些參數傳遞給MsBuild,並且它們將「按原樣」傳送給MsDeploy,但我無法找到該如何執行。

+0

我編輯了你的標題。請參見「[應的問題包括‘標籤’,在他們的頭銜?(http://meta.stackexchange.com/questions/19190/)」,這裏的共識是「不,他們不應該」。 – 2013-04-24 03:59:40

回答

1

如果它必須在構建之後,您需要使用postSync msdeploy argument來執行runCommand。由於postSync不適用於Visual 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

+0

謝謝。我的確不太在乎這個命令。我會嘗試你的方法,然後接受。 – 2013-04-24 16:45:10