4

我无法让 Fody.Costura 在 .NET Core 2.1 或 .NET Standard 2.0 库中运行。wiki 和 open issues 似乎并没有直接回答与经典 .NET Framework 项目(.exe 或 .dll)相比必须做什么不同的问题。

  1. 出于测试目的,我创建了 4 个项目:

    • 一个经典的 .NET Framework .exe 和一个 .dll
    • .NET Core 2.1 .dll
    • .NET 标准 2.0 .dll
  2. 我将 Fody(最新 5.1)和 Costura(最新 4.0)添加到所有项目中。

  3. 然后我为所有项目创建了完全相同的 FodyWeaver.xml。

  4. 我让所有项目都依赖于 Newtonsoft.Json(每个 Nuget 添加它并在每个使用 Newtonsoft.Json 的项目中创建一个类)。

  5. 我构建了它们并检查了输出-> Newtonsoft.Json 按预期不在输出目录中。但是,当使用 ILSpy 查看创建的 .dll 文件时,只有来自 .NET Framework 项目的二进制文件包含一个 Resources 文件夹,其中包含 Newtonsoft.Json.Dll。

在此处输入图像描述

根据我在 wiki 中阅读的内容,应该没有进一步的设置。这些问题并不是说不支持 .NET Core 和 Standard,即使正在进行改进等。有人知道如何让事情在这里工作吗?对我不认识的医生有任何提示吗?

.NET Core 和 Standard 项目的最终 Dll 应包含 Newtonsoft.Json.dll

更新 1

如果我在 FodyWeavers.xml 文件中显式添加 IncludeAssemblies='Newtonsoft.Json',则程序集将作为资源包含(在 .NET Core 和 Standard 中)。这是预期的行为吗?

4

1 回答 1

1

Costura 只能用于顶级项目(exe)

于 2019-08-01T02:45:59.430 回答