.net - Visual Studio 不加载项目引用

标签 .net visual-studio visual-studio-2013 windows-10 csproj

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

references...

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

empty path

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

Object Browser seems to be ok

所以我该怎么做:

  • 重新创建项目文件(通过创建新项目并再次添加所有文件和引用);
  • 更改项目配置中的某些内容;
  • 使用较新版本的 .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

    关于.net - Visual Studio 不加载项目引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32425557/

    相关文章:

    c# - 设置属性是规则对 FluentValidation 有效

    c# - 为什么 SmartScreen 筛选器会阻止我的所有可执行文件?

    visual-studio - 如何在 Visual Studio 之外使用 nuget 包管理器从命令行安装/更新包?

    c++ - 当包含对象包含 unique_ptr 时如何删除 vector 的元素?

    c# - 阻止 visual studio 2013 在新行上重新定位大括号?

    c# - 限制 NamedPipeServerStream 的范围

    c# - 数据类冲突有什么解决方法吗?

    c++ - 在 VS 2005(8) IDE 中使用 GCC

    c++ - 更改 openni2 上的分辨率不起作用

    c# - 从 .NET 客户端调用 Web API (C#)