我想创建一个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类用于我的服务?
答案 0 :(得分:0)
是的!那是因为NETStandard.Library 1.6.0不支持4.5.1,它只支持4.6.3+(.NET Framework)
您的类库需要降至.netstandard 1.2。更多详细信息,您可以在here
查看答案 1 :(得分:0)
问题是类库中的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": { }
}
}