1

そのため、3つの環境(ST、UAT、Prod)の展開パッケージを生成するためにTFSビルドを使用しようとしています。これは、パッケージをローカルで正常に生成するために私が従ったものです。 http://social.msdn.microsoft.com/Forums/en-US/tfsbuild/thread/74bb16ab-5fe6-4c00-951b-666afd639864/

したがって、私のローカルマシンは、acyive構成のパッケージを生成し、すべてが正常です。ビルドの定義は次のとおりです。/p:DeployOnBuild=true;DeployTarget=PackageソリューションファイルとWeb展開プロジェクトを[ビルドするプロジェクト]で実行します。

ST、UAT、PRODでそれぞれのフォルダを作成します。これらのそれぞれに、_PublishedWebsitesフォルダーがあります。このフォルダには2つのフォルダがあります。

1)MydeploymentProject-変換されたweb.configが含まれます2)MyDeploymentProject_Package-zipファイルおよびsetparametersファイルとともにPackageフォルダーの内容が含まれます。ここではすべてが変換されていません。しかし、TFSサーバーでTempBuildDirを確認すると、変換された構成が含まれています。

ローカルとサーバーのログを比較すると、ローカルのAfterトランスフォーメーションファイルが更新されてパッケージが作成されているのに対し、TFSではAfterBuildターゲットがトランスフォーメーション完了と呼ばれ、そこで終了していることがわかりました。

これは私のローカルログです。ターゲット"WPPCopyWebApplicaitonPipelineCircularDependencyError"は、誤った条件のためにスキップされました。($(WPPCopyWebApplicaitonPipelineCircularDependencyError))は(False)として評価されました。プロジェクト「C:\ TAX-IT \ Main \ Source \ TDDB \ TDDB_deploy2」のファイル「C:\ ProgramFiles \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web\Microsoft.Web.Publishing.targets」のターゲット「ProcessItemToExcludeFromDeployment」 \ TDDB_deploy2.wdproj "(ターゲット" PipelineCollectFilesPhase "はそれに依存します):プロジェクト"TDDB_deploy2.wdproj"でターゲット"ProcessItemToExcludeFromDeployment"のビルドが完了しました。プロジェクト「C:\ TAX-IT \ Main \ Source \ TDDB \ TDDB_deploy2」のファイル「C:\ ProgramFiles \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web\Microsoft.Web.Publishing.targets」のターゲット「GetProjectWebProperties」 \TDDB_deploy2。

何が悪いのかわかりません。また、ビルドサーバーにVS2010、Web配置2.0および3.0、およびWeb配置ツールをインストールしました。

誰もがこれに直面し、解決しました。助けてください。

ありがとう

4

1 に答える 1

2

マッドコーダー、

あなたの説明から私が集めたものから、あなたはすべて正しく設定されています。「構成」パラメーターが欠落しているようです。ビルド定義を実行すると、「ビルドする構成」引数で指定された構成が使用されます。複数の構成を構築したい場合(提案しているように)、複数の構成を定義する必要があります。1 つの質問があります。TFS ビルド プロセスのログを見ると、複数の構成がビルドされていることがわかりますか、それとも 1 つだけですか? 1 つしか表示されない場合は、構成ファイルを変換するためにすべての構成が定義されていません。説明によると、ビルド定義構成で次のようなものを確認する必要があります。

ここに画像の説明を入力

Web サーバーにデプロイしたくない場合は、ここで読むのをやめて、先に進む必要はありません。


TFS ビルド定義を使用して Web サーバーにデプロイすることを選択した場合は、どこかにターゲット Web サーバーが必要であり、そのサーバーにも Web Deploy v2/v3 をインストールして構成する必要があります。

TFS ビルド定義を使用して展開する場合、変換はパッケージ化中 (展開前) ではなく、展開時に行われます。変換された構成をどこかにパッケージ化することはできますが、Web サイトにバンドルされている構成を実際に変換することはありません。変換された構成で展開を実際に機能させることができた唯一の方法は、MSBUILD args で指定された Web サイトがある場合です。これが私の MSBUILD 引数の例です:

/p:DeployOnBuild=True /p:DeployTarget=MSDeployPublish /p:MSDeployPublishMethod=RemoteAgent /p:MsDeployServiceUrl=MyWebServer/MsDeployAgentService /p:DeployIisAppPath="MyWebsite as named in IIS"  /p:UserName=MyDomain\MyWebDeployUser /p:Password=MyWebDeployPassword

MSBUILD で実際の展開を行いたくない場合 (展開プロセスが TFS に関連付けられているため、私はそうしたくないのです)、ビルド プロセスの後に展開を行い、codeplex にある CTT プロジェクトを使用できます。このツールは MSBUILD とまったく同じ変換を実行しますが、設定をパラメーター化する機能も含まれているため、環境のクラス (たとえば、3 つの QA 環境、2 つのステージング環境など) を定義し、そのクラスのそれぞれの変換を引き続き使用できます。環境の。

于 2012-08-15T12:32:38.340 に答える