32

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

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

4

3 に答える 3

61

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

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

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

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

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

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

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

AutoParameterizationWebConfigConnectionStrings=false:これは、Web Publishing Pipeline(WPP)に、web.configファイルの接続文字列をパラメーター化しないように指示します。これを指定しない場合、接続文字列の値は$(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プロパティは、将来のバージョンでは他の何かを意味するか、まったく存在しない可能性があるという意味で、プロパティが本質的に「内部」であることを意味するためです。したがって、自己責任で使用してください。

オプション3

そうは言っても、ビルドを使用してWebをパッケージ化することができます。これを実行する場合は、次の引数を使用します。

/p:DeployOnBuild=true;DeployTarget=Package

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

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

于 2010-10-28T17:13:04.143 に答える
1

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

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

詳細については、こちらをご覧ください。

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

于 2014-07-25T04:34:30.033 に答える
-2

VisualStudio2010で公開/展開を使用できます。

詳細については、 http://www.ewaldhofman.nl/post/2010/04/12/Auto-deployment-of-my-web-application-with-Team-Build-2010-to-add-Interactive-Testing.aspxを参照してください。情報

于 2010-10-28T11:15:59.400 に答える