2012-04-02 118 views
3

我有一對Web應用程序和SQL數據庫項目的混合解決方案。在TFS構建過程中部署數據庫和Web項目

我也有一個MS SQL 2012和IIS 7的遠程測試服務器.TFS生成服務器在另一臺機器上。所有服務器都配置在單個域中。

我想在構建過程中部署數據庫和Web應用程序。

現在我已經使用了以下標誌設置編譯包產生的TFS XAML進程文件:

/p:DeployOnBuild=True 

,我還建立了網上發佈的其他標誌:

/p:DeployTarget=MsDeployPublish 
/p:CreatePackageOnPublish=True 
/p:MsDeployPublishMethod=WMSVC 
/p:AllowUntrustedCertificate=True 

但我有點困惑,應該使用哪種方法:WMSVC或遠程代理或其他。 哪種設置從TFS構建服務器到IIS 7服務器的Web部署最簡單的方法,並避免用戶帳戶的問題(以避免在XAML或構建定義中設置/ p:UserName = YOURUSERNAME /p:Password = YOURPASSWORD)?

另一個問題是關於數據庫項目。構建過程已經生成了一些.dacpac文件。從TFS構建過程XAML部署它們的最佳方式是什麼?

由於我的解決方案有混合類型的項目,我不確定如何調整構建過程,以便正確地檢測哪些項目需要數據庫部署,哪些需要Web部署。

我希望MSBuild/MSDeploy足夠聰明,只要忽略那些/ p:標誌,如果currrent項目不是一個web應用程序,或者它可能會導致整個構建過程的失敗?

+2

我剛剛創建這個很長一段時間,所以它沒有更新,所以我沒有用這篇文章回答你的問題,但仍然有效,可以幫助你http://mohamedradwan.wordpress.com/2010/10/23/自動部署你的網站爲QA與團隊建設/第二個http://mohamedradwan.wordpress.com/2010/10/15/deploy-db-project-with-team-build-2010 / – 2012-04-02 17:32:03

回答

3

這兩個網站:

You are deploying it wrong

Headless msbuild support for ssdt sqlproj projects

幫了我很多正確地設置了一切。

現在我知道在IIS7上遠程發佈首選WMSVC(通過RemoteAgent)方法,但我需要在目標服務器上安裝WebDeploy。在本地主機InProc工作得很好。

其中一個主要問題是,在構建所有解決方案後,我試圖發佈Web應用程序,但MSBuild一直說「跳過不可發佈的應用程序」。

,問題就

Targets="Publish" 

在我的MSBuild腳本。當我把它改成

Targets="Build" 

,並把性能爲我的項目:

Configuration=Release; 
    SkipInvalidConfigurations=true; 
    DeployOnBuild=true; 
    CreatePackageOnPublish=true; 
    AllowUntrustedCertificate=true; 
    DeployTarget=MsDeployPublish; 
    MSDeployPublishMethod=InProc; 
    MsDeployServiceUrl=localhost; 
    DeployIISAppPath=Default Web Site\MyWebApp 

它最後居然開始發佈到在我的本地的IIS7。

呃,爲什麼Publish目標沒有發佈,但只有Build目標呢?這對我來說是個謎。特別是因爲我爲我的sqlproj項目使用Publish目標,並且它們實際上已發佈到SQL Server上。

相關問題