Я работаю над библиотекой (MyLib), предназначенной для net стандарта 2.0 и. net базового приложения 3.0. Lib имеет зависимость (PrimaryDependency), которая, в свою очередь, имеет другую зависимость (OtherDependency), а OtherDependency использует Microsoft. Windows .Compatibility package:
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. * (части от Microsoft. Windows .Compatibility, которые необходимы для запуска приложения), и это тоже отлично работает.
Теперь, если я скомпилирую (или опубликую sh) MyLib.dll, ни выходные данные netstandard2.0, ни выходные данные netcoreapp3.0 не содержат библиотек System. * И Microsoft. *, Которые необходимы для MyLib.dll. работать на. net core.
Поскольку MyLib.dll является плагином, конечный потребитель этой библиотеки не имеет проект MyLib в качестве ссылки, а следовательно, System. * и Microsoft. * Зависимости go отсутствуют. Что я могу сделать, чтобы при компиляции / публикации MyLib убедиться, что он содержит все необходимые зависимости?