web-dev-qa-db-ja.com

チームビルド:MSDeployを使用してローカルで公開する

私はチームビルド機能を使い始めたばかりであり、かなり単純なものをやや圧倒するために必要なものの量が非常に多くなっています。現在の私のセットアップは、Webアプリ、Assemblyアプリ、テストアプリを使用したソリューションです。 Webアプリには、ファイルシステムを介して公開するPublishProfileが設定されています。

TFSビルド定義がセットアップされていて、現在ソリューション全体が毎晩ビルドされ、古いビルドのバックアップとしてネットワーク共有にドロップされています。私が今やりたいのは、既にセットアップしたPublishProfileにWebアプリを公開してもらうことだけです。これは本当にシンプルだと思いますが、MSBuildコマンドを丸一日使ってみましたが、運がありませんでした。助けて!

32
Chris Surfleet

残念ながら、発行プロファイルの共有はMSBuildではサポートまたは実装されていません。プロファイルから公開するロジックはVS自体に含まれています。幸い、プロファイルには多くの情報が含まれていないため、探しているものを実現する方法があります。私たちのターゲットは、発行ダイアログが続くのとまったく同じ手順を具体的にサポートしていませんが、チームビルドから同じ結果を得るには、2つの選択肢があります。ここで両方の概要を説明します。

デプロイするためにチームビルド定義をセットアップするときは、ビルドプロセスのMSBuild引数にいくつかの値を渡す必要があります。これを強調表示した下の画像を参照してください。 alt text

オプション1:次の引数を渡します。

/p:DeployOnBuild=true;DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder;PackageTempRootDir="\\sayedha-w500\BuildDrops\Publish";AutoParameterizationWebConfigConnectionStrings=false

これらのパラメータについて少し説明し、結果を示してから、次のオプションについて説明します。 DeployOnBuild=trueDeployTargetプロパティで定義されたターゲットを実行するようにプロジェクトに指示します。

DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder:DeployTargetターゲットを指定します。

PackageTempRootDir="\\sayedha-w500\BuildDrops\Publish":これは、パッケージファイルが書き込まれる場所を指定します。これは、パッケージ化される前にファイルが書き込まれる場所です。

AutoParameterizationWebConfigConnectionStrings=false:これは、web.configファイルの接続文字列をパラメーター化しないようにWeb公開パイプライン(WPP)に指示します。これを指定しない場合、接続文字列の値は$(ReplacableToken_dummyConStr-Web.config Connection String_0)のようなプレースホルダーに置き換えられます

これを行った後、ビルドを開始できます。次に、PackageTempRootDirの場所の中にPackageTmpフォルダーがあり、これには探しているコンテンツが含まれています。

オプション2:したがって、前のオプションの場合、PackageTmpという名前のフォルダーが作成されることにおそらく気付いたので、それを望まない場合は、代わりに次のオプションを使用できます。

/p:DeployOnBuild=true;DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder;_PackageTempDir="\\sayedha-w500\BuildDrops\Publish";AutoParameterizationWebConfigConnectionStrings=false

ここでの違いは、PackageTempRootDirの代わりに_PackageTempDirを渡すことです。そもそもお勧めしないのは、_で始まるMSBuildプロパティは、将来のバージョンでは他の何かを意味するか、まったく存在しないという意味で、本質的に「内部」のプロパティであることを示しているためです。したがって、自己責任で使用してください。

オプション

以上のことから、ビルドを使用してWebをパッケージ化できます。これを行う場合は、次の引数を使用します。

/p:DeployOnBuild=true;DeployTarget=Package

ビルドのドロップフォルダーでこれを行うと、通常どおり_PublishedWebsitesフォルダーが見つかり、その中に{ProjectName} _Packageフォルダーがあります。ここで、{ProjectName}はプロジェクトの名前です。このフォルダーには、パッケージ、.cmdファイル、パラメーターファイル、およびその他いくつかが含まれます。これらのファイルを使用して、Webを展開できます。

それが負荷に関する情報ではなかったことを願っています。

61

Webサイトを公開する機能、IIS、およびDEV-> QA-> RELEASEサイクルのプッシュスキーマの変更を構成する機能では、公開を模倣するカスタム構成またはカスタムコードIIS設定が関係しています。

Visual Studio 2013.2の時点で、マイクロソフトはWebサイトの展開、構成変更、Windowsワークフローを使用したデータベースの展開を管理するサードパーティ製品を追加しており、TFSビルドからの展開を自動化するための推奨ソリューションとなります。

詳細はここにあります:

http://www.visualstudio.com/en-us/explore/release-management-vs.aspx

1
Mike Beeler