Visual Studio 2015 - C# Windows通用应用程序缺少程序集引用。

9
今天我在新的电脑上安装Visual Studio 2015后,从Github上克隆了我的Windows通用应用程序项目。当项目加载后,我注意到所有页面和属性都被红色下划线标记,并且出现了许多错误,例如“CS0246 C# The type or namespace name '<name>' could not be found (are you missing a using directive or an assembly reference?)”、“CS0518 C# Predefined type 'System.Void' is not defined or imported”和“CS1545 C# Property, indexer, or event 'Application.Suspending' is not supported by the language; try directly calling accessor methods 'Application.add_Suspending(SuspendingEventHandler)' or 'Application.remove_Suspending(EventRegistrationToken)’”。我发现CS0012实际上提供了有关如何解决问题的信息:“You must add a reference to assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.”但是查看我的project.json文件后,我发现…
"dependencies": {
    "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0"
}

由于该项目无法构建或运行,只会列出大量错误信息,请问如何解决这个问题?
4个回答

24
在“解决方案资源管理器”中查看项目的“引用”,可以发现尽管列出了“Microsoft.NETCore.UniversalWindowsPlatform”作为依赖项,但该依赖项却在项目中丢失,这导致了问题的出现。
Visual Studio知道该程序集是一个依赖项并需要被引用,但似乎它没有与Visual Studio 2015一起预安装,即使在安装所有Windows 10开发工具时也是如此,而且它似乎不会自动获取包甚至在它知道需要它的情况下!
要解决这个问题,您需要使用NuGet手动安装该程序包,然后它将作为引用正确地解析。
要做到这一点,请右键单击“引用”,然后单击“管理NuGet程序包...”。
在“NuGet程序包管理器”屏幕上,搜索“Microsoft.NETCore.UniversalWindowsPlatform”,它将是一个完全匹配项。
在右侧的详细信息窗格中单击“安装”,Visual Studio将获取该程序包并将其包含为项目的引用。
然后,所有的红色下划线将消失,您就可以继续工作了!

4
在我的情况下,缺失了对"Microsoft.NETCore.UniversalWindowsPlatform"的引用,导致编译出现了很多错误。NuGet显示它已经安装过了。解决方法是卸载然后重新安装。这个问题来自于一个UWP示例项目。 - GarDavis
1
也对我有用。并不是立即生效,我必须重新启动VS2015,但它确实解决了问题。 - Cora
谢谢!这解决了我的问题。 - James Ko
1
那么这就是解决方法 - 是否有实际的修复措施?也就是说,有没有办法防止将来再次发生这种情况? - Travis
谢谢。这也对vs2017有帮助!再提醒一下:在重新安装之前,请清除NuGet缓存。 - Caesar

1
我遇到了类似的问题。我自己创建的通用项目有参考引用。在下载一些 Windows IoT 网站的示例时,有些没有引用。NUGET 说已经安装了。对我来说,解决办法是构建解决方案,这样它就自行修复了。

0

对我有用的是 工具 -> nuget 包管理器 -> 管理解决方案的 nuget 包 并更新解决方案的包 它会添加很多东西,然后更新你的解决方案 希望对你有用


-1

是的,一切都已安装完毕,我的回答是正确的;我有一个朋友因此受到了困扰,今天我第一次看到这个问题,所以决定做一个问答来帮助那些在谷歌搜索该问题时需要帮助的人们。 - rcbevans
帮我一个忙,把你的调试器改成x86或x64。我曾经遇到过同样的问题,因为目标是任意CPU,在TFS拉取后找不到引用。 - Stamos
对我来说,在通用项目中,CPU 总是默认为 ARM。Windows 通用 SDK 工具今天已更新到 v1.1,这可能会解决该问题。 - rcbevans

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接