我的电脑上有一个 Visual Studio (Community 2013) 解决方案,其中包含许多 C# 项目,并且我刚刚从 Windows 7 升级到 Windows 10。该项目使用 .Net Framework 4.0 Client Profile。在 win7 上一切正常,但现在其中一个项目似乎没有加载引用。引用的项目附近有黄色三角形,这些不是从同一解决方案引用的项目(因此未加载 NuGet 下载的系统和引用)。
“资源”是解决方案中的另一个项目,其他项目不是。当我打开系统引用的属性选项卡时,Path
字段为空,因此
Resolved
字段为 False
...<HintPath>
节点,具有相对(或绝对,如果引用位于另一个驱动器上)和正确的现有路径。
另一个奇怪的事情:在对象浏览器中,所有引用(似乎)都已加载:
重新创建项目文件(通过创建新项目并再次添加所有文件和引用);
<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" />
来自项目文件!
在此处查找有关该主题的更多信息:
将您的项目加载到 VS 中并在项目属性页面(目标框架)中更改它,升级到 .NET 4.x(不是客户端)或 .NET 4.5
将解决方案文件与最新的进行比较。我这样做了,并意识到 Visual Studio 本身为 x86 添加了很多配置,这导致了问题,即使我尝试使用 x64 进行构建。签出文件然后撤消更改就成功了。
构建 --> 清洁解决方案