繁体   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