参考问题/缺失类型

时间:2015-01-23 18:56:23

标签: roslyn visual-studio-2015 asp.net-core

我在使用ASP.NET 5项目的Visual Studio 2015 CTP 5中定期在Windows 7上收到以下错误:

  • 代码:CS0518
  • 描述:未定义或导入预定义类型“System.Object”

其他核心类型,如Int32&字符串,显示相同的错误。

如果重要的话,我正在使用MyGet的夜间版本和KRE的beta2版本。我从我的框架列表中删除了“aspnetcore50”,并且在我的project.json中只有“aspnet50”。

这似乎是因为没有押韵或理由(例如早上在VS中加载项目),我通常不得不抓住我的项目并重新创建它以取得进展。还有其他人遇到过这个问题吗?有什么我可以尝试解决这个问题吗?我发现在VS中卸载/重新加载项目有时会起作用,但它通常没有任何帮助。

4 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,它是由项目依赖性最终导致1.0.0-beta4引起的(因为project.json中的1.0.0- *)而我使用的是1.0.0-beta2

答案 1 :(得分:1)

我仍然不确定究竟是什么导致了这个问题,但我认为这是由于运行" kvm update"和/或使用beta 2 KRE的beta4软件包。无论如何,这是我为解决这个问题所做的工作:

  • 删除%userprofile%.kre \ packages
  • 的所有K个运行时
  • 删除%userprofile%.kpm \ packages
  • 中的所有Nuget包
  • 手动安装beta2 K运行时
  • 将project.json中的包版本更改为beta2(" 1.0.0-beta2"或" 6.0.0-beta2")
  • 在项目设置中设置正确的KRE
  • 卸载/重新加载项目文件

到目前为止,这个问题并没有重新出现。如果我发现其他任何内容,我们一定要更新这篇文章。

答案 2 :(得分:0)

当您添加对可移植类库的引用时,可能会发生这种情况。 .csproj文件的项目系统将自动添加对Portable Facade Assemblies的引用,它会检测到添加的引用是PCL,但我不相信ASP.NET vNext项目系统会这样做。

答案 3 :(得分:0)

可以看看这个question,可能不是一回事,但就我的情况而言,我在我的project.json上有Microsoft.AspNet.SignalR.Server“:”3.0.0- *,当它们发布时beta2版VS获得了SignalR的所有依赖关系,这是beta2,这与beta1的其他依赖关系相冲突。