Этот проект ссылается на проект X, и поэтому также должен ссылаться на ENP.
Если ваш проект не имеет непосредственной зависимости от ENP, ваш проект на самом деле не должен ссылаться ЕПС. Например, как прокомментировали MickyD и Zivkan выше, nuget работает так, как задумано в вашем сценарии.
Для поведения, с которым вы встретились Y does not have an immediate dependency, but "letting X do it" does nothing. The files aren't copied over on compile
, я думаю, что это возможно текущий проект не использует формат PackageReference
.
Существует два формата для управления пакетами nuget, Package.config
и PackageReference
. Все проекты .net standard and .net core
используют формат PackageReference, в то время как проекты, предназначенные для .net framework
, могут использовать формат packages.config или PackageReference . Если ваш. net каркасный проект выбирает packages.config
для управления пакетами nuget, после сборки мы не можем найти файлы из ENP
пакета, так как текущий проект и указанный X
проект не используют тот же формат управления. Для этого создайте новый проект, который использует packageReference, или добавьте его в файл проекта вашего текущего проекта (packages-config):
<PropertyGroup>
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
</PropertyGroup>
Убедитесь, что этот проект и упомянутый проект X используют одинаковый формат PackageReference
, тогда вы обнаружите, что «позволить X сделать это» делает то, что вам нужно.
Я думаю, что приведенный выше сценарий решит вашу первую проблему, и тогда нам не нужно продолжать ваш второй сценарий, основанный на первый выпуск. Надеюсь, это поможет:)