【问题标题】:Consuming class libraries built using .NET Core使用使用 .NET Core 构建的类库
【发布时间】:2017-05-02 23:28:44
【问题描述】:

我编写了一个 .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 服务和库之间的互操作性。

【问题讨论】:

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


    【解决方案1】:

    再深入一点,我至少能够解决问题。

    我仍然不完全理解它的原因,但我得到了一切工作。

    第一个异常似乎是由目标框架中的冲突引起的。如果类库以 .NET Standard 1.4 为目标,而服务以 .NET Framework 4.6.1 为目标,那么一切似乎都可以成功编译和运行。

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    • 2018-04-21
    相关资源
    最近更新 更多