Visual Studio 2015 で古いプロジェクトを開いた時に「参照」が壊れた
現象
Visual Studio 2012のプロジェクトを2015で開いたら、参照が全部壊れているプロジェクトがあった。(全部ではない)
System
とかSystem.Core
とか基本的なやつやlog4net
といったnuget管理の物も黄色の!がでて参照できなくなっている- 参照からランタイムを選んでプロパティを表示するとバージョンが
0.0.0.0
になっている
- 参照からランタイムを選んでプロパティを表示するとバージョンが
- 参照の追加で選び直しても駄目
- 対象のランタイムを切り替えても駄目
解消方法
結局、csprojファイルを直接エディタで開いて直しました。
以下の部分を削除します。
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" /> <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>
ちなみにソリューションファイル(sln)の変換は上手くいってました。
- 旧
Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Express 2012 for Windows Desktop
- 新
Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Express 14 for Windows Desktop VisualStudioVersion = 14.0.25420.1 MinimumVisualStudioVersion = 10.0.40219.1