3

MVC3プロジェクトをVS2010で実行されているMVC4にアップグレードしましたが、4.0フレームワークをターゲットにしています(4.5の準備はまだ整っていません)。これはすべて開発では正常に機能しますが、ビルドサーバーでビルドが失敗し(悲しいことにJenkins / Hudsonを使用)、次のメッセージが表示されます。

エラーMSB4019:インポートされたプロジェクト "C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ WebApplications\Microsoft.WebApplication.targets"が見つかりませんでした。宣言内のパスが正しいこと、およびファイルがディスク上に存在することを確認してください。

これに一致するステートメントをプロジェクトファイルで探しましたが、ありません。csprojの2行目(下)は、明示的にv10.0をターゲットにしています。

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />

最初のものはどういうわけかv11.0に解決されている可能性があると思いますが、それがどこから来るのかはわかりません。ソリューションはVS2012で少なくとも1回開かれているので、どこかに何かが挿入されたと思いますが、何がわからないのです。

開発環境では、VS 2012パスの名前を変更しましたが、VS2010でプロジェクトをロードしてビルドできます。

4

1 に答える 1

3

それを見つけました-答えは多かれ少なかれここにあります:http: //blogs.msdn.com/b/webdev/archive/2012/08/22/visual-studio-project-compatability-and-visualstudioversion.aspx

基本的に、VS2012でMVC4プロジェクトを開くと、プロジェクトファイルが変更され、VSバージョンが動的に検出され、その値が見つからない場合はデフォルトでv10.0になります。

v11.0がビルドサーバーのどこから来たのか100%わかりません。.slnファイルを元に戻しても違いはないようです。ただし、その特定の変更を.csprojファイルに戻すと、正常にビルドされます。

具体的には、追加された行を次のようにコメントしました。

<!--
      <PropertyGroup>
        <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
        <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
      </PropertyGroup>
-->
      <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!--
      <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
-->
      <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
于 2012-12-27T17:52:08.737 に答える