web-dev-qa-db-ja.com

「Microsoft.Build.Tasks.v14.0.dll」が見つからないため、Visual Studio 2015でビルドできません

Visual Studio 2015でビルドしようとすると、次のファイルが見つかりませんか?このプロジェクトは以前VS2013でビルドされていました。

重大度コード説明プロジェクトファイルラインエラータスクファクトリ「CodeTaskFactory」をアセンブリ「C:\ Program Files(x86)\ MSBuild\14.0\bin\Microsoft.Build.Tasks.v14.0.dll」からロードできませんでした。ファイルまたはアセンブリ 'file:/// C:\ Program Files(x86)\ MSBuild\14.0\bin\Microsoft.Build.Tasks.v14.0.dll'またはその依存関係の1つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。

54
Chris Sewell

アセンブリの名前が変更されました。 CodeTaskFactory MSBuildタスクのAssemblyFileパラメーターを...に変更します(エラーには、このタスクが存在するターゲットファイル名があるはずです)

AssemblyFile="C:\Program Files (x86)\MSBuild\14.0\Bin\Microsoft.Build.Tasks.Core.dll"

巧妙になり、このようなMSBuildプロパティを使用しようとする可能性があります(MSBuild 14では機能しませんが、12では機能します)...

AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v$(MSBuildToolsVersion).dll"

ただfyi ... Microsoft.Build.Utilities.v12.0.dllMicrosoft.Build.Utilities.Core.dllに名前が変更されたなど、他にもいくつかあります

57
Gary Howlett

Visual Studio 2017で私を助けたのは、Microsoft.Build.Tasks.Core.dllをコピーして、Microsoft.Build.Tasks.v15.0.dllに名前を変更することです build.tasks.v15.0.dll

22

私の場合、SFML.NET nugetパッケージの問題でした。

古いNuget Baseclass.Contrib.Nuget.Outputコンポーネントに依存していたため、ビルドが失敗しました。

.Net 4.6に手動で更新した後、プロジェクトファイルからすべてのnugetスタッフを削除し、プロジェクトからそのファイルを削除し、Baseclass.Contrib.Nuget.Outputのバージョンが変更され、ビオラがすべての依存関係を再度追加しました!

18
Siarhei Kuchuk

Visual Studioを初めて再起動したとき、私のために働いた

もう一度このエラーが発生し、更新しました:

Install-Package Baseclass.Contrib.Nuget.Output -Version 2.2.0-xbuild02

7
Houshang.Karami

Visual Studioを再起動するだけで十分でした。

以前に何か他のことをしているすべてのMSBuild.exeプロセスを強制終了し、MSBuild.exeプロセスがないとエラーが発生したのではないかと考えています。

6
Matthew Lock

ゲイリーの答えに続いて、私はこれを次のようにパラメーター化しました:

<Choose>
  <When Condition="'$(MSBuildToolsVersion)'=='14.0'">
    <PropertyGroup>
      <TasksAssemblyName>Microsoft.Build.Tasks.Core</TasksAssemblyName>
    </PropertyGroup>
  </When>
  <Otherwise>
    <PropertyGroup>
      <TasksAssemblyName>Microsoft.Build.Tasks.v$(MSBuildToolsVersion)</TasksAssemblyName>
    </PropertyGroup>
  </Otherwise>
</Choose>
<UsingTask TaskName="SecondsSinceEpoch" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\$(TasksAssemblyName).dll">
4
Alastair

私の解決策:「* .csproj」ファイルから2つの行を削除します。

<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
2

私の場合、ルートから「ls.pubignore.wpp.targets」ファイルを削除しました。そして、エラーを削除しました。 :)

1
Nitesh Kumar

私は同じ問題を抱えていました。私の場合、VS2015でNuGetパッケージマネージャーからいくつかのパッケージを更新し、vs2015がインストールされていない別のマシンでvs2013で同じソリューションを開こうとしました。

Microsoft Build Tools 2015をインストールすると、エラーが解決しました。これにより、Microsoft.Build.Utilities.Core.dllがGACに追加され、それが機能するものと考えます。

https://www.Microsoft.com/en-in/download/details.aspx?id=48159

1
vinayak hegde

Visual Studio 2017の場合、これは私にとって有効なものであり、提供されている2つのソリューションの組み合わせです。どちらも自分で働いたわけではないので、これが新しい答えとしてこれを提出する理由です。

ファイル内C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\VisualStudio\v15.0\CodeAnalysis\Microsoft.CodeAnalysis.Targets

AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v12.0.dll">AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll">に置き換えます

そして、_Microsoft.Build.Tasks.v15.0.dll_という名前で同じフォルダーにファイルC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Build.Tasks.Core.dllをコピーします

0
musicinmusic