使用.NET Core构建类库

时间:2017-05-02 23:28:44

标签: c# .net windows-services .net-core

我有一个.NET Core类库。它目前定位netcoreapp1.1。我有一个引用此库的Windows服务。 Windows服务的目标是.NET 4.6.2。

当我尝试在引用MyLib项目的bin/Debug文件夹中的MyLib.dll时启动win服务时,我在Windows事件查看器中收到以下错误:

Could not load file or assembly 'System.Runtime, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

System.RuntimeMyLib.dll的依赖关系。如果我在VS 2017中发布我的库,它会创建一个NuGet包。当我将该包添加到我的win服务项目时,它似乎安装所有依赖包。当我尝试在此配置中启动服务时,我在事件查看器中获得以下内容:

Could not load file or assembly 'MyLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format.

我不确定如何获得Windows服务和库之间的互操作性。

1 个答案:

答案 0 :(得分:0)

进一步深入研究,我能够至少解决问题。

我仍然不完全理解它的原因,但我完全了解了它。

第一个例外似乎是由目标框架中的冲突引起的。如果类库以.NET Standard 1.4为目标,并且服务以.NET Framework 4.6.1为目标,则所有内容似乎都可以编译并成功运行。

第二个例外似乎是由库和服务项目所针对的构建平台不匹配引起的。通过将服务项目所针对的平台从默认AnyCPU切换到x64,可以解决格式异常。