8

まず、取得したエラーにコンテキストを追加さ​​せてください。.NET 4.5.1 Preview をインストールしました。VS 2012 で最初に気付いたのは、.NET 4.5.1 が利用可能なフレームワークにリストされていないことです。これは 4.5 へのアップグレードにすぎないため、これが正しい動作であるかどうかはわかりません。VS 2012 でリストする必要があると思います。

さらに、VS 2013 プレビューをインストールし、プロジェクトを .NET 4.5.1 にアップグレードし、VS 2012 でソリューションを開くと、新しい .NET バージョンが再表示されたので、これが VS 2012 のバグであるかどうかはわかりません。わかりましたので、VS 2012 に .NET 4.5.1 があり、プロジェクトをビルドしようとすると、次のエラーが発生します。

Error   3   The task factory "CodeTaskFactory" could not be loaded from the assembly "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Build.Tasks.v4.0.dll". Could not load file or assembly 'file:///C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Build.Tasks.v4.0.dll' or one of its dependencies. The system cannot find the file specified.  D:\Projects\MyProject\Master\Source\.nuget\nuget.targets    71  9   MyProject.Core.Modules

NuGet.targets が報告した行

<SetEnvironmentVariable EnvKey="VisualStudioVersion"
EnvValue="$(VisualStudioVersion)" Condition=" '$(VisualStudioVersion)'
!= '' AND '$(OS)' == 'Windows_NT' " />

何らかの理由でVS 2012がパスまたはアセンブリを解決できないように思われるため、NuGet.targetsで何かを修正する必要があるのか​​ 、それともVisual Studioのものなのか、何かアイデアはありませんか?

ありがとう

4

4 に答える 4

17

.csproj ファイルの ToolsVersion の変更を解決しました。

から

<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
于 2013-07-17T09:33:01.643 に答える
11

Building .NET Framework 4.5.1 applications is supported in Visual Studio 2012. Visual Studio 2013 PreviewまたはWindows SDK for Windows 8.1 Previewをインストールして、Visual Studio と同じコンピューターに .NET Framework 4.5.1 Preview Targeting Pack を取得する必要があります。 2012 では、.NET Framework 4.5.1 プレビューでアプリケーションをビルドします。

ありがとう
ニシア [MSFT]

于 2013-07-22T19:56:58.293 に答える
7

これを修正するには、NuGet.targetsをアップグレードし、次の 2 行を変更する必要がありました

から

<UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<UsingTask TaskName="SetEnvironmentVariable" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">

<UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v12.0.dll">
<UsingTask TaskName="SetEnvironmentVariable" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v12.0.dll">

また、VS 2013 をインストールするまで、.NET 4.5.1 プレビューが VS 2012 に表示されないことに関連する回答を得ることができれば幸いです。

自分との素敵なチャット。

于 2013-07-12T07:10:53.897 に答える
2

これは、Microsoft がこのトピックについて書いたブログ投稿です。

Visual Studio 2012 で .NET Framework 4.5.1 Preview を使用してアプリをビルドする

于 2013-08-09T18:16:57.803 に答える