Visual Studio 不加载项目引用

Visual Studio doesn't load project references

我有一个 Visual Studio (Community 2013) 解决方案,我的电脑上有很多 c# 项目,我刚刚从 7 升级到 Windows 10。该项目使用 .Net Framework 4.0 Client Profile .在 win7 上一切正常,但现在其中一个项目似乎没有加载引用。引用项附近有黄色三角形,哪些不是从同一解决方案引用的项(因此未加载 NuGet 下载的系统和引用)。

Resources是解决方案中的另一个项目,其他的不是。当我打开系统引用的属性选项卡时,Path 字段为空,因此 Resolved 字段为 False...

此外,在 .csproj 文件中一切似乎都正常,在需要的地方有 <HintPath> 个节点,具有相对(或绝对,如果引用在另一个驱动器上)和正确的现有路径。
另一件奇怪的事情:在对象浏览器中,所有的引用(似乎)都被加载了:

那么,我该怎么办:

主要问题是 FRAMEWORK 引用。

将项目加载到 VS 中并在项目属性页面(目标框架)中进行更改,升级到 .NET 4.x(不是客户端)或 .NET 4.5

我也遇到了这个问题,我花了一些时间才弄明白。问题是 NuGet 改变了包的恢复方式。 "old way" 需要包含 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

确保两个项目都针对相同的框架版本。对于 ex:one 与目标框架 .Net Framework 4.5.1 将无法与 4.5

一起使用

如果您正在使用 "TFS",或任何其他版本控制系统,我已经解决了问题:

将解决方案文件与最新的进行比较。我这样做并意识到 visual studio 本身为 x86 添加了很多配置,这导致了问题,即使我尝试使用 x64 构建。签出文件然后撤消更改就成功了。

当我将项目移动到另一个文件夹时,我在 VS-2015 中遇到了这个问题(项目未加载引用)。 而且新文件夹的名字很大,我缩短了名字,重新加载项目然后就开始工作了。