[英]Use .NetCore class library on windows service
我想创建一个Windows服务,该服务可重用在.NETCore类库上创建的类。 我有一个来自.NETCore类库的示例project.json,如下所示:
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"tools": {
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
},
"frameworks": {
"netcoreapp1.0": {
"imports": [ "dnxcore50", "portable-net451+win8" ]
}
}
}
我一直在遵循这种方法http://taskmatics.com/blog/run-dnx-applications-windows-service/ 。 我创建了一个控制台应用程序,并按照指示更改了其project.json文件。 但是,每当我尝试将其他类库声明为依赖项时,我都会收到一条错误消息,指出
'依赖关系无法解决'
这是我用于Windows服务应用程序的project.json文件:
{
"version": "1.0.0-*",
"dependencies": {
//"MyClassLibrary": "1.0.0-*",
//When uncommenting everything fails
},
"frameworks": {
"dnx451": {
"dependencies": {
},
"frameworkAssemblies": {
"System.ServiceProcess": "4.0.0.0"
}
}
}
}
有没有一种方法可以为我的服务使用.NETCore类?
是的! 那是因为NETStandard.Library 1.6.0不支持4.5.1,它仅支持4.6.3 +(。NET Framework的)
您的类库需要降至.netstandard 1.2。 更多细节,请点击这里
问题是, netcoreapp1.0
类库框架是不兼容的dnx451
在控制台应用程序框架。 在这种特殊情况下,用net451
替换两者都可以。
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"MyClassLibrary": "1.0.0-*"
}
"frameworks": {
"net451": {
"frameworkAssemblies": {
"System.ServiceProcess": "4.0.0.0"
}
}
}
}
注意:如果不需要是NetStandard库,则可以删除netcoreapp1.0
和dependencies
节点。
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"tools": {
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
},
"frameworks": {
"netcoreapp1.0": {
"imports": [ "dnxcore50", "portable-net451+win8" ]
},
"net451": { }
}
}
您正在遵循的教程已经很老了。 dnx
现在已过时 ,已被新的.Net CLI取代。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.