この問題を調べてみましたが、解決策はどれもうまくいきませんでした。Visual Studio Professional 2015 をインストールしており、TFS を使用しています。NuGet のバージョンは 3.1.6 です。この問題は、C# Web API/MVC プロジェクトでのみ発生しています。
以下のエラーが発生します:
このプロジェクトは、このコンピューターに存在しない NuGet パッケージを参照しています。NuGet パッケージの復元を使用してダウンロードしてください。詳細については、http://go.microsoft.com/fwlink/?LinkID=322105不足しているファイルは ..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props です。
- ソリューションに .nuget フォルダーがありません。
- ソリューションにパッケージ フォルダーがあり、それを削除すると、NuGet によって依存関係が再構築されるようですが、プロジェクトには上記のエラーが残っています。
- TFS からプロジェクトを削除してみましたが、問題は解決しませんでした。
- 上記のエラーに加えて、プロジェクト内のすべての参照に黄色の警告サインが表示され、参照が欠落していることが示されます。
- プロジェクトの NuGet パッケージ マネージャーを確認すると、Microsoft.Net.Compilers を含め、「不足している」ものすべてに緑色のチェック マークが付いていました。
- 新しい Web API/MVC プロジェクトを追加しようとしましたが、Owin などのほとんどの参照が「欠落」し、黄色の警告サインが表示されるという同様の問題が発生しました。
ベストアンサー1
.csproj
ファイルからこのコードを削除することで問題を解決しました:
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>