Nuget: нужно импортировать пакет в разные проекты в одном решении? - PullRequest
0 голосов
/ 18 июня 2020

У меня есть решение, включающее несколько проектов. Один проект - это Common, на который ссылаются все другие проекты (pro001, pro002, ...).

Существует пакет nuget «myPackage», который импортируется в общий проект. Он также импортирован в другие проекты. Код работает нормально. Однако каждый раз, когда мы меняем myPackage, нам приходится обновлять его в решении, что занимает много времени (из-за слишком большого количества проектов).

Поскольку Common ссылается на все другие проекты, а Common всегда имеет последнюю версию myPackage, есть ли способ НЕ импортировать myPackage в другие проекты (pro001, pro002, ...)?

Или , нет возможности сделать это?

спасибо

1 Ответ

0 голосов
/ 28 июня 2020

Проекты в стиле SDK

Если вы можете переключить форматы проекта на новый стиль SDK и , используйте PackageReference, тогда вы получите выгоду от транзитивные зависимости с пакетами NuGet. Это решит вашу проблему, поскольку проект, который ссылается на другой проект, использующий пакет NuGet, также сможет получить доступ к своим сборкам. Это будет работать для проектов. NET Framework и. NET Core, но только с форматом в стиле SDK и PackageReference.

MS Build

Начиная с MS Build Version 15, вы может определять свойства сборки и цели для объема проектов с помощью файла Directory.Build.props или Directory.Build.targets. Вы можете найти более подробную информацию об этом здесь . В вашем примере вы можете определить файл Directory.Build.props в своей папке решения root и добавить следующее содержимое:

<Project>
    <ItemGroup>
        <PackageReference Include="myPackage" Version="1.0.0" />
    </ItemGroup>
</Project>

Тогда все проекты автоматически будут иметь ссылку на mypackage.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...