ビルドを行ってから 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 は必要ないことを読みました。
この問題のヘルプは非常に高く評価されています.....ありがとう.