我正在创建一个包含针对以下框架的ASP.NET 5 MVC Web App的大型解决方案:
"frameworks": {
"dnx451": { },
"dnxcore50": { }
},
我的解决方案中有几个新的类库(包)用于业务层,数据层等。所有这些库都针对以下框架:
"frameworks": {
"net451": { },
"dotnet5.4": {
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-23516",
"System.Collections": "4.0.11-beta-23516",
"System.Linq": "4.0.1-beta-23516",
"System.Runtime": "4.0.21-beta-23516",
"System.Threading": "4.0.11-beta-23516"
}
}
}
我有一些测试项目针对以下框架,就像我的MVC Web应用程序一样:
"frameworks": {
"dnx451": { },
"dnxcore50": { }
},
经过大量研究后,我发现任何像我的mvc应用程序和测试库这样的项目应该以dnx为目标,而作为类库的项目应该保留默认值并定位net / dotnet5.4。
有人可以告诉我我做错了什么,因为从我的MVC Web应用程序中我无法引用我的类库(DAL,BLL)中的项目,除非我向它们添加dnx451 ...
答案 0 :(得分:1)
您的网络应用中有" dnxcore50" ,而您的dll中有" dotnet5.4" ,这些可能与您不同引用的库集。您的班级图书馆应定位" dnxcore50" ,或者您的网络应用应以" dotnet5.4" 为目标' s依赖
答案 1 :(得分:0)
我只是解决了类似问题。
实际上,问题不是无法引用您的类库,而是缺乏Intellisense的支持。您可以在应用程序的project.json中手动引用类库,然后在应用程序中使用类库中的类。应用程序将构建并运行良好。至少我的建造和运行。但是VS仍然会用红色突出显示类库的类,并显示"无法解析符号"警告信息。
为了添加对Intellisense的支持,我删除了" dnxcore50"来自应用程序的project.json并添加了" net451"。所以,现在我在应用程序中有以下project.json:
"frameworks": {
"net451": { },
"dnx451": { }
},
我不能只引用" net451"因为我无法启动应用程序。 DNX只退出代码1.但是同时使用" net451"用于Intellisense支持和" dnx451"对于DNX支持,我能够继续处理我的项目并等待ASP.NET Core的RC2中的正确解决方案。