1

ビルドを行ってから Web サイトを公開するチーム ビルドを使用する TFS2013 で問題が発生しています。
VS2013 を使用して開発マシンから Web サイトを発行し、Web サイト プロジェクトの (右クリック) [Web サイトの発行] オプションを使用すると、すべてが正常に機能します。TFS2013 ビルド サーバーで次のエラーが発生します。

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Transform\Microsoft.Web.Publishing.AspNetCompileMerge.targets(421,5): エラー:

**Can't find the valid AspnetCompilerPath** [C:\Builds\3\Web\Development to WebDev\Sources\Web\Website\Development\ASP.NET\App\website.publishproj]
Done Building Project "C:\Builds\3\Web\Development to WebDev\Sources\Web\Website\Development\ASP.NET\App\website.publishproj" (default targets) -- FAILED.

**

チーム ビルドのセットアップで次の MSBuild 引数を使用しています。
/p:DeployOnBuild=true;VisualStudioVersion=12.0;DeployTarget=WebFileSystemPublish;PublishProfile=開発

Development Web Transform は、'PublishProfile=Development' 引数に応答してビルド サーバーで正常に動作します。Web.Config ファイルは、開発環境用に適切に変換されます。MSBuild の引数で述べたように、私は FileSystem パブリッシュ オプションを使用しており、それを維持したいと考えています。

ビルド サーバー 'C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Transform\Microsoft.Web.Publishing.AspNetCompileMerge.targets' を変更して、いくつかのプロパティをターゲット 'ConfigureForAspNetPreCompileMerge に次のように記録します。 ':

<Message Text="[TargetFrameworkVersion]: $(TargetFrameworkVersion)" />
<Message Text="[AspnetCompilerPath]: $(AspnetCompilerPath)" />
<Message Text="[Framework40Dir]: $(Framework40Dir)" />
<Message Text="[MSBuildToolsRoot]: $(MSBuildToolsRoot)" />
<Message Text="[MSBuildRuntimeVersion]: $(MSBuildRuntimeVersion)" />

これにより、次の情報がチーム ビルドの website.log ファイルに記録されます: ConfigureForAspNetPreCompileMerge:

[TargetFrameworkVersion]: v4.0 [AspnetCompilerPath]: [Framework40Dir]: C:\Program Files (x86)\MSBuild\v4.0.30319 [MSBuildToolsRoot]: C:\Program Files (x86)\MSBuild\ [MSBuildRuntimeVersion]: 4.0. 30319

[Framework40Dir] は、同じ MSBuild ターゲットで同じデータを記録しているローカル マシンとは異なります。

12> タスク パラメーター:Text=[TargetFrameworkVersion]: v4.0 12>
[TargetFrameworkVersion]: v4.0 12> タスク パラメーター:Text=[AspnetCompilerPath]: 12> [AspnetCompilerPath]: 12> タスク パラメーター:Text=[Framework40Dir] : C:\Windows\Microsoft.NET\Framework\v4.0.30319 12> [Framework40Dir]: C:\Windows\Microsoft.NET\Framework\v4.0.30319 12> タスク パラメーター:Text=[MSBuildToolsRoot]: C:\Programファイル (x86)\MSBuild\ 12> [MSBuildToolsRoot]: C:\Program Files (x86)\MSBuild\ 12> タスク パラメーター:Text=[MSBuildFrameworkToolsRoot]: C:\Windows\Microsoft.NET\Framework\ 12>
[MSBuildFrameworkToolsRoot ]: C:\Windows\Microsoft.NET\Framework\ 12>
タスク パラメーター:Text=[MSBuildRuntimeVersion]: 4.0.30319 12>
[MSBuildRuntimeVersion]: 4.0.30319

[Framework40Dir] の TeamBuild 値は次のとおりです: 'C:\Program Files (x86)\MSBuild\v4.0.30319' vs 私のローカル DEV マシン: C:\Windows\Microsoft.NET\Framework\v4.0.30319

これは非常に珍しいようです。

また、TeamBuild ファイル 'C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Transform\Microsoft.Web.Publishing.AspNetCompileMerge.targets' を変更して、Framework40Dir のプロパティを次のように手動で設定しました。 「C:\Windows\Microsoft.NET\Framework\v4.0.30319」ですが、TeamBuild プロセス全体がその時点に到達するとハングしているように見え、手動で停止するまでチーム ビルドを永久に実行します。

これは、ここで機能したのと同じソリューションです: TFS ビルド サーバーは発行プロファイルを機能させることができません: "有効な AspnetCompilerPath が見つかりません" しかし、私にとっては機能しません。その問題は私の問題と同じです。

ビルド サーバーは TFS2013.3 で最新です。私はそのマシンに Visual Studio 2013 をインストールしていません。TFS チーム ビルドに VS は必要ないことを読みました。

この問題のヘルプは非常に高く評価されています.....ありがとう.

4

3 に答える 3

2

$(Framework40Dir) をこのパス C:\Windows\Microsoft.NET\Framework\v4.0.30319 に変更してください。

于 2014-09-15T20:48:39.593 に答える
2

vs2013 をビルド サーバーにインストールすると、これらの問題の大部分が削除され、単体テストに対してコード カバレッジを実行できるようになり、開発マシンに有効なライセンスがある限り、ライセンスは必要ありません。これがあなたが望んでいた答えではないことはわかっています。

于 2014-08-18T20:47:52.387 に答える