2011-07-21 84 views
4

我一直在閱讀和試驗幾天。我購買了最新的「Microsoft Build Engine內部 - 使用MSBUild和Team Foundation Build」。我一直試圖通過查看構建目標來解決問題。如何從團隊構建中創建Web部署包?

我很快能得到要構建的構建服務器上的包,但我希望能夠到指定的安裝文件夾,所以它不會進入wwwroot文件。我讀到,我不得不將項目從使用cassini切換到本地IIS服務器。通過所有這一切。

我經過定義的MSBuild ARGS:

/P:DeployOnBuild = TRUE/P:DeployTarget =封裝/ P:MSDeployPublishMethod =是InProc/P:CreatePackageOnPublish =真/ P:MsDeployServiceUrl =本地主機

我有這麼多的問題,但我會只是開始。如果任何人都可以提供指導,我會非常感激。

  1. 如果指定的應用程序在構建服務器上不存在(它不應該!),那麼程序包創建失敗。如果我添加一個相應命名的shell應用程序,則會生成該程序包

  2. 即使我砍我的方式過去#1,當我嘗試部署使用Web.deploy.cmd,它失敗:

    錯誤:使用64位的源和32位提供程序appHostConfig的目標不受支持。

    請注意,構建服務器是64位,並且此目標服務器(開發)是32位。我有針對「任何CPU」的構建配置構建。哦,我正在調用32位機器的部署,所以只有32位的msdeploy.exe可用。

回答

1

在「進程」在適當BuildDefinition,展開「高級」部分,並設置「的MSBuild參數」到「/ P:DeployOnBuild =真」的值。

這將使您的WebDeploy包根據您在項目屬性中的設置進行構建。

+1

呀,我提到我使用這種方法。不過謝謝。 –

0

我寫了2篇關於如何創建Web包並將其自動部署到Web服務器的文章,我認爲它可能對您有用。

自動部署你的網站與QA團隊建設click here

如何遠程運行與MS部署部署? click here

+0

花了幾天的時間試圖讓這個過程變得非常明顯,msdeploy不會對我們有用。它通過xcopy提供的唯一功能就是創建網站。爲了做到這一點,你需要指定它應該複製IIS設置。很好,但要做到這一點,當使用構建服務器時,需要在構建服務器上設置網站。沒用。如果我能想出如何生成部署腳本和參數文件,我可以在團隊構建過程中爲每個環境吐出軟件包,並將它們與TFS Deployer一起使用。 –

+0

但即便如此......當xcopy提供我們需要的99%功能時,爲什麼要經歷所有這些努力。我可以理解,如果我們每天部署網站,但是我們有一些項目,並且根本沒有辦法證明爲使我們爲此工作所需的努力量。這是另外一個例子,表面上看起來非常棒,但試圖快速調整它很快就證明是一場噩夢。 –