2012-04-02 12 views
3

私は、いくつかのWebアプリケーションとSQLデータベースプロジェクトを組み合わせたソリューションを用意しています。TFSビルドプロセス中にデータベースとWebプロジェクトを展開する

また、MS SQL 2012とIIS 7を使用したリモートテストサーバーもあります.TFSビルドサーバーは別のマシンにあります。すべてのサーバーは単一のドメインに構成されています。

ビルドプロセス中にデータベースとWebアプリケーションを展開したいと思います。

/p:DeployOnBuild=True 

をし、私はまた、Webパブリッシングのための他のフラグ設定している:

は今、私は以下のフラグを使用して、TFS XAMLプロセスファイルでビルドパッケージの生成を設定している

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

をが、私は、どの方法を使うべきか、WMSVCかRemote Agentか他の何かを少し混乱させる。 TFFビルドサーバーからIIS 7サーバーへのWebデプロイメントを設定し、ユーザーアカウントの問題を回避する最も簡単な方法はどれですか(/ p:UserName = YOURUSERNAME /p:Password = XAMLまたはビルド定義のYOURPASSWORD)。

その他の問題は、データベースプロジェクトです。ビルドプロセスによっていくつかの.dacpacファイルが生成されました。 TFSビルドプロセスXAMLからそれらを展開する最善の方法は何でしょうか?

私のソリューションにはさまざまな種類のプロジェクトがあります。ビルドプロセスを調整する方法がわからないので、データベースの展開が必要なプロジェクトとWebの展開が必要なプロジェクトが正しく検出されます。

MSBuild/MSDeployは、currrentプロジェクトがWebアプリケーションでない場合や、ビルドプロセス全体の失敗を生成する場合には、それらの/ p:フラグを無視するだけで十分ですか?

+2

私はちょうどこれを更新していないので、私はこの投稿を使ってあなたの質問に答えなかったので、これも作成しますが、それでも有効で、あなたを助けることができますhttp://mohamedradwan.wordpress.com/2010/10/23/自動展開 - あなたのウェブサイト用qa-with-team-build/2番目のものhttp://mohamedradwan.wordpress.com/2010/10/15/deploy-db-project-with-team-build-2010 / –

答えて

3

これらの2つのウェブサイト:

You are deploying it wrong

Headless msbuild support for ssdt sqlproj projects

はすべてを正しく設定するために私をたくさん助けました。

そして今、私はIIS7でのリモート公開のためにWMSVCが推奨されていることを知っていますが、ターゲットサーバーにWebDeployをインストールする必要があります。 localhostでInProcはうまく動作します。

大きな問題点の1つは、すべてのソリューションを構築した後にWebアプリケーションを公開しようとしていたことですが、MSBuildは「公開不可能なアプリケーションをスキップする」と続けました。

そして、問題は私のMSBuildスクリプトで

Targets="Publish" 

ました。私は

Targets="Build" 

にそれを変更して、私のプロジェクトのプロパティを置くとき:

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

それは最終的には実際に私のローカルホスト上のIIS7への公開を開始しました。

なぜ、公開ターゲットは公開されず、ビルドターゲットだけが公開するのですか?それは私の謎です。特に、私のsqlprojプロジェクトにPublishターゲットを使用し、SQLサーバーに実際に公開されるためです。

関連する問題