簡體   English   中英

在Windows服務上使用.NetCore類庫

[英]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.0dependencies節點。

{
  "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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM