開発チームのVS2010からVS2013への移行をサポートするために、新しいビルドサーバーをセットアップしています。 TFSサーバーはまだ移行していないため、新しいビルドサーバーは2つのエージェントを持つVS2010ビルドコントローラーとして設定されています。また、マシンにVS2013をインストールしました(スレッジハンマーアプローチ)。
すべてのコードはターゲット.Net 4.5.1に移行されており、開発者のワークステーションで問題なくコンパイルされます。
Webプロジェクトを含むソリューションを除いて、ほとんどのソリューションは問題なくビルドできます。これらのプロジェクトは不満を持っています:
インポートされたプロジェクト「C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets」が見つかりませんでした。
インポートされたプロジェクトは、次の2行を通じてビルドプロセスでVisualStudioVersion変数を使用しています。
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
...
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
このページによると:
http://msdn.Microsoft.com/en-us/library/vstudio/bb383796.aspx
4.5と4.5.1の両方のターゲットで「11.0」に設定されます。ただし、ビルドマシンには上記のパスの12.0バージョンしかありません。
「C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets "
これらの同じ.csproj行は、まったく新しいVS2013プロジェクトで使用されているようです。そのため、ビルドマシンでこれがどのように正しく解決されるかはわかりません。
Vs2012がcsprojファイルにこの部分を追加したことが原因です。
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
安全にその部分を削除すると、ソリューションが構築されます。
.projファイルが<Project ToolsVersion="12"
で始まることを確認する必要があります。そうしないと、次にVisual Studio 2010でプロジェクトを開いたときに、削除されたノードが再び追加されます。
それ以外の場合、webdeployを使用する必要がある場合、またはビルドサーバーを使用する場合、上記のソリューションは機能しませんが、ビルドスクリプトでVisualStudioVersion
プロパティを指定できます。
msbuild myproject.csproj /p:VisualStudioVersion=12.0
または、ビルド定義を編集します。
あなたができることは、ビルドサーバーでmsbuildを実行するときにVisualStudioVersionプロパティを指定することです
msbuild myproject.csproj /p:VisualStudioVersion=12.0
私は同様の問題に遭遇しました...そしてここに理由があります。 VS2013以降、MSBuildは.NET FrameworkではなくVisual Studioの一部として出荷されます。これを参照してください msdn blog 。
したがって、[正しい方法]で問題を解決するには、「C:\ Windows\Microsoft.NET\Framework64\v4」ではなく、「C:\ Program Files(x86)\ MSBuild\12.0\bin \」からMSBuildを使用する必要がありました。 .0.30319\"
ビルドテンプレートを編集して、ツールバージョンを修正できるはずです。
テンプレートの.xamlファイルを開き、「MsBuild for Project」アクティビティを見つけます。プロパティには、ツールのバージョンを設定するオプションがあります。必要に応じて、テンプレートレベルのプロパティを作成して、構成を容易にすることができます。