[英]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.