Visual Studio无法加载项目引用

时间:2015-09-06 16:08:20

标签: .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...

Resources 是解决方案中的另一个项目,其他项目则没有。当我打开系统参考的属性标签时,Path字段为空,因此Resolved字段为False ...

empty path

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

Object Browser seems to be ok

那么,我该怎么做:

  • 重新创建项目文件(通过创建新项目并再次添加所有文件和引用);
  • 更改项目配置中的内容;
  • 使用较新版本的.Net;
  • 更改VS配置中的内容;
  • 使用另一个VS(例如,社区2015)或重新安装当前的一个?

5 个答案:

答案 0 :(得分:12)

我也遇到了这个问题,花了一些时间才弄明白。问题是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

答案 1 :(得分:1)

主要问题是FRAMEWORK参考。

将项目加载到VS并在PROJECT PROPERTIES页面(TARGET FRAMEWORK)中更改它,升级到.NET 4.x(非客户端)或.NET 4.5

答案 2 :(得分:0)

确保两个项目都针对相同的框架版本。例如:使用目标框架的.Net Framework 4.5.1不适用于4.5

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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