1

我正在开发一个针对 .net 标准 2.0 和 .net 核心应用程序 3.0 的库(MyLib)。Lib 有一个依赖项(PrimaryDependency),而后者又具有另一个依赖项(OtherDependency),OtherDependency 使用 Microsoft.Windows.Compatibility 包:

MyLib
  PrimaryDependency
     OtherDependency (.NET Std 2.0, using Microsoft.Windows.Compatibility Nuget package)

我使用 MyLib 编写了两个测试应用程序。一个基于 .net 4.72,一个用于 .netcoreapp 3.1。net472 测试应用程序不需要来自 Microsoft.Windows.Compatibility 的任何东西(所有这些东西都在 .NET 运行时中)。因此,输出确实包含 Tester.exe、MyLib.dll、PrimaryDependency.dll 和 OtherDependency.dll,并且工作正常。

.netcore 测试应用程序输出包含 Tester.exe、Tester.dll、MyLib.dll、PrimaryDependency.dll、OtherDependency.dll 和一堆 System.* 和 Microsoft.* dll(需要的来自 Microsoft.Windows.Compatibility 的部分运行应用程序),它也可以正常工作。

现在,如果我编译(或发布)MyLib.dll,netstandard2.0 输出和 netcoreapp3.0 输出都不包含 MyLib.dll 在 .net 核心上运行所需的 System.* 和 Microsoft.* dll。

由于 MyLib.dll 是一个插件,因此该 dll 的最终使用者没有 MyLib 项目作为参考,因此 System.* 和 Microsoft.* 依赖项丢失。当我编译/公开 MyLib 时,我能做些什么来确保它确实包含所有必要的依赖项?

4

0 回答 0