トップ回答者
Visual Studio Community 2015 でソリューションのフォルダを移動したら参照が全て切れて戻せなくなった。

質問
-
Visual Studio Community 2015 でソリューションのフォルダを移動したら参照が全て切れて戻せなくなりました。
ソリューションフォルダ内にはA,B,2つのプロジェクトがあるのですが、Bは正常に参照されていますがAのプロジェクトはすべて参照が切れています。
プロジェクトはFramework4.5で作成されています。
OS Windows 10 Pro【症状】
○ Aプロジェクトの参照を見ると、全ての参照が黄色の△にびっくりマークがついた状態です。
【試したこと】
○ 元あった場所にフォルダを戻してソリューションを開いても同じ症状でした。
○ Aプロジェクトだけを開いても同じ症状でした。
○ 試しに System 参照を削除して、新たに参照を追加しても同じ症状でした。
○ System 参照を削除して、参照の追加で直接 "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.dll" を追加しても同じ症状でした。
○ Frameworkのバージョンをほかに変更しても(戻しても)同じ症状でした。
○ System 以外を削除、追加してみましたが同じ症状でした。(全てをチェックしてはおりません。)削除して追加しても参照が有効にならないので困ってしまいました。
なにか手掛かりになるようなことでも助言いただけたらありがたいです。
回答
-
以下の条件で再現しました。
* Windows 10 Pro
* Visual Studio 2015 Community
* 自家製NuGet Packageを参照しているプロジェクト
* 自家製NuGet Packageはローカルフォルダに配置
* 自家製NuGet Packageを配置しているフォルダをPackage Sourcesに追加していなかった
* 自家製NuGet Packageの復元に失敗している
* 自家製NuGet PackageはMSBuild Taskの.props/.targetsをインストールするPackage
Package Sourcesを正しく設定して、NuGet Packageの復元に成功するまでは、.NETアセンブリの参照は黄色い三角マークがついて何をやってもだめでした。
インポートしているMSBuild Taskとか疑ってみてはどうでしょうか?
因みに、ソリューションフォルダよりも上の階層にNuGet.configを配置して、リポジトリ位置(packagesフォルダ)を変更している場合は、ソリューションフォルダを移動して、リポジトリからの深さが変わると、復元に失敗します。
この場合、テキストエディタ等でNuGet Packageの参照を全て除去してから、再インストールする必要があります。
以上、参考になれば。
すべての返信
-
Tak1waさん、こんにちは。
> 問題が発生しているプロジェクトを一度閉じて、binフォルダ、objフォルダを削除後に開きなおして、参照を追加した場合、どのようになるでしょうか。
やってみましたが同じ症状でした。
> 参照ツリーで黄色三角が表示されている項目はプロパティウインドウ上、パスやバージョンはどのように表示されている状態でしょうか。
ID : System
エイリアス : System
カルチャ : 空白
バージョン : 0.0.0.0
パス : 空白
ファイルの種類 : アセンブリ
ランタイムバージョン : 空白
ローカルにコピー : False
解決済み : False
厳密な名前 : False
説明 : 空白
相互運用型の埋め込み : False
特定のバージョン : False
です。
-
以下の条件で再現しました。
* Windows 10 Pro
* Visual Studio 2015 Community
* 自家製NuGet Packageを参照しているプロジェクト
* 自家製NuGet Packageはローカルフォルダに配置
* 自家製NuGet Packageを配置しているフォルダをPackage Sourcesに追加していなかった
* 自家製NuGet Packageの復元に失敗している
* 自家製NuGet PackageはMSBuild Taskの.props/.targetsをインストールするPackage
Package Sourcesを正しく設定して、NuGet Packageの復元に成功するまでは、.NETアセンブリの参照は黄色い三角マークがついて何をやってもだめでした。
インポートしているMSBuild Taskとか疑ってみてはどうでしょうか?
因みに、ソリューションフォルダよりも上の階層にNuGet.configを配置して、リポジトリ位置(packagesフォルダ)を変更している場合は、ソリューションフォルダを移動して、リポジトリからの深さが変わると、復元に失敗します。
この場合、テキストエディタ等でNuGet Packageの参照を全て除去してから、再インストールする必要があります。
以上、参考になれば。