我已经使用ASP.NET 5 MVC6项目和一些类库创建了一个解决方案。我正在使用Visual Studio 2015,我的目标是" dnxcore50"和" net451"。
在类库中,我使用EF7编写存储库代码。在一个类中,我试图在DbSet<>上使用一些方法。即"。所在(......)","。单(...)"和#34;。第一(...)"。这些可以在旧版本的.NET上获得。
我收到以下2个错误:
.NET Framework 4.5.1错误CS0012:类型' IEnumerable<>'被定义为 在未引用的程序集中。您必须添加引用 assembly' System.Runtime,Version = 4.0.0.0,Culture = neutral, 公钥= b03f5f7f11d50a3a'
.NET Framework 4.5.1错误CS0012:类型' Func<,>'定义在一个 未引用的程序集。您必须添加对程序集的引用 ' System.Runtime,Version = 4.0.0.0,Culture = neutral, 公钥= b03f5f7f11d50a3a'
似乎在DNXCORE50格式中没有问题,但不是.NET的完整4.5.1版本。
我在project.json文件中有这个:
"frameworks": {
"net451": {
"dependencies": {
"System.Runtime": "4.0.21-beta-23516"
}
},
"dnxcore50": {
"dependencies": {
"System.Runtime": "4.0.21-beta-23516"
......
}
}
}
我的目标是1.0.0-rc1-final DNX SDK版本。
有什么想法吗?
答案 0 :(得分:6)
好吧,我终于认为我设法找出原因。如果创建类库,则project.json文件具有:
"net451": { },
在“框架”部分。如果我将其更改为:
"dnx451": { },
然后它起作用。我不是百分之百确定这是否会对其他任何事情产生影响。但我现在会用它。
答案 1 :(得分:1)
要获得额外答案,我们仍然可以通过添加“System.Runtime”
来使用net451
"net451": {
"frameworkAssemblies": {
"System.Runtime": ""
}
}