我很难尝试从常规Windows桌面开发迁移到ASP.NET Core MVC。我遇到的一个问题是创建我的解决方案。我想从VS 2015附带的默认项目中删除与UI无关的所有内容,并将其放入一个单独的项目中。
我注意到ASP MVC Core引用了.NETCoreApp
,类库项目引用了.NETStandard
。
我的问题是我需要在类库中使用动态keyworkd并且它不支持它。 MVC项目支持没有任何问题。我想这是因为.NET版本不同。
NETStandard和NETCoreApp有什么区别?
我可以创建一个使用与MVC项目相同的引用的类库,这样我就可以在其上使用dynamic关键字吗?
或者我应该在同一个地方坚持使用所有域名,基础设施等的一个项目解决方案?
答案 0 :(得分:4)
是的,可以将非UI代码放入单独的库中。正如您所猜测的,netcoreapp1.0
适用于应用程序(控制台或Web),netstandard1.X
适用于类库。
.NET标准类库不应该对dynamic
关键字有任何问题。但是,您确实需要引用NETStandard.Library
。这是一个准确的工作库示例:
<强>在MyLibrary / project.json 强>
{
"description": "My awesome library",
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.3": { }
}
}
如果ASP.NET库Web应用程序是同一个解决方案的一部分,那么它可以引用该库:
{
(... other stuff)
"dependencies": {
"MyLibrary": {
"target": "project"
}
}
}