我无法让 Fody.Costura 在 .NET Core 2.1 或 .NET Standard 2.0 库中运行。wiki 和 open issues 似乎并没有直接回答与经典 .NET Framework 项目(.exe 或 .dll)相比必须做什么不同的问题。
出于测试目的,我创建了 4 个项目:
- 一个经典的 .NET Framework .exe 和一个 .dll
- .NET Core 2.1 .dll
- .NET 标准 2.0 .dll
我将 Fody(最新 5.1)和 Costura(最新 4.0)添加到所有项目中。
然后我为所有项目创建了完全相同的 FodyWeaver.xml。
我让所有项目都依赖于 Newtonsoft.Json(每个 Nuget 添加它并在每个使用 Newtonsoft.Json 的项目中创建一个类)。
我构建了它们并检查了输出-> 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 中)。这是预期的行为吗?