3

いくつかのWebアプリケーションとSQLデータベースプロジェクトを組み合わせたソリューションがあります。

また、MSSQL2012とIIS7を備えたリモートテストサーバーがあります。TFSビルドサーバーは別のマシン上にあります。すべてのサーバーは単一のドメインで構成されます。

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

これで、次のフラグを使用してTFSXAMLプロセスファイルでビルドパッケージの生成を設定しました。

/p:DeployOnBuild=True

また、Web公開用に他のフラグも設定しました。

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

しかし、WMSVCまたはリモートエージェントなど、どちらの方法を使用すればよいか少し混乱しています。TFSビルドサーバーからIIS7サーバーへのWeb展開をセットアップし、ユーザーアカウントの問題を回避する最も簡単な方法はどれですか(XAMLまたはビルド定義で/ p:UserName = YOURUSERNAME / p:Password = YOURPASSWORDを設定しないようにするため)?

もう1つの懸念は、データベースプロジェクトに関するものです。ビルドプロセスにより、いくつかの.dacpacファイルが生成されました。TFSビルドプロセスXAMLからそれらをデプロイするための最良の方法は何でしょうか?

私のソリューションにはさまざまなタイプのプロジェクトがあるため、ビルドプロセスを調整して、データベースのデプロイが必要なプロジェクトとWebのデプロイが必要なプロジェクトを正しく検出する方法がわかりません。

現在のプロジェクトがWebアプリでない場合、またはビルドプロセス全体で失敗が発生する場合は、MSBuild / MSDeployがこれらの/p:フラグを無視できるほど賢いことを願っています。

4

1 に答える 1

3

これらの 2 つの Web サイト:

あなたはそれを間違って展開しています

ssdt sqlproj プロジェクトのヘッドレス msbuild サポート

すべてを正しく設定するのに大いに役立ちました。

そして今、IIS7 でのリモート公開には WMSVC が (RemoteAgent よりも) 優先される方法であることがわかりましたが、ターゲット サーバーにWebDeployをインストールする必要があります。localhost では、InProc は問題なく動作します。

大きな問題の 1 つは、すべてのソリューションをビルドした後で 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 サーバーに問題なく公開されているためです。

于 2012-04-04T14:46:52.683 に答える