Visual Studio 不載入項目引用
我有一個 Visual Studio (Community 2013) 解決方案,在我的電腦上有許多 c# 項目,我剛剛從 7 升級到 Windows 10。該項目使用 .Net Framework 4.0 客戶端配置文件。在 win7 上一切正常,但現在其中一個項目似乎沒有載入引用。引用的項目附近有黃色三角形,哪些不是從同一解決方案引用的項目(因此未載入由 NuGet 下載的系統和引用)。
資源是解決方案中的另一個項目,其他項目不是。當我打開系統引用的屬性選項卡時,該
Path欄位為空,因此該Resolved欄位為False…此外,在 .csproj 文件中,一切似乎都正常,
<HintPath>在需要的地方有節點,具有相對(或絕對,如果引用在另一個驅動器上)和正確的現有路徑。另一件奇怪的事情:在對象瀏覽器中,所有引用都(似乎)載入了:
所以我該怎麼做:
- 重新創建項目文件(通過創建新項目並再次添加所有文件和引用);
- 更改項目配置中的某些內容;
- 使用較新版本的 .Net;
- 改變 VS 的配置;
- 使用另一個 VS(例如 Community 2015)還是重新安裝目前的?
我也遇到了這個問題,我花了一些時間才弄清楚。問題是 NuGet 改變了包的恢復方式。“舊方式”需要包含 3 個文件(nuget.config、nuget.exe、nuget.targets)的“.nuget”文件夾以及項目文件中的一些設置,例如:
<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>這導致項目中斷。
要解決此問題,請將缺少的目錄複製到項目中(使用舊版本的 Visual Studio/NuGet 或從擁有它的同事處獲取),或者只是從項目文件中刪除上述部分。
為獲得最佳效果,還要刪除:
<RestorePackages>true</RestorePackages>和
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />從項目文件!
在此處查找有關該主題的更多資訊:
http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html
http://docs.nuget.org/consume/package-restore/migrating-to-automatic-package-restore
https://docs.microsoft.com/en-us/visualstudio/ide/troubleshooting-broken-references


