我有一个Visual Studio(Community 2013)解决方案,我的电脑上有许多c#项目,我刚从7升级到Windows 10.该项目使用.Net Framework 4.0 Client Profile。在win7上一切正常,但现在其中一个项目似乎没有加载引用。引用项目附近有黄色三角形,不是同一解决方案引用的项目(因此NuGet下载的系统和引用未加载)。
Resources 是解决方案中的另一个项目,其他项目则没有。当我打开系统参考的属性标签时,Path
字段为空,因此Resolved
字段为False
...
此外,在.csproj文件中,一切似乎都没问题,需要<HintPath>
个节点,相对(或绝对,如果引用在另一个驱动器上),以及正确的现有路径。 />
另一个奇怪的事情是:在对象浏览器中,所有引用都是(貌似)加载的:
那么,我该怎么做:
答案 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中遇到了这个问题(项目未加载引用)。 新文件夹的名称很大,我缩短了名称,然后重新加载了项目,然后它开始工作。