Viji
@Viji
Associate DevOps Engineer

Почему надо явно добавлять пакет Microsoft.NET.Test.Sdk в гл проект, если в одном из пакетов он уже есть?

Есть проект который использует наш собственный nuget package, скажем Company.Tests.Package который содержит в своем csproj файле ссылку на Microsoft.NET.Test.Sdk 17.7.2

<PackageReference Include="Microsoft.NET.Test.Sdk " Version="17.7.2" />


Тем не менее в др проектах, которые содержат в себе ссылку на Company.Tests.Package в этой же PackageReference секции, чтобы работали тесты приходится снова добавлять строку типа

<PackageReference Include="Microsoft.NET.Test.Sdk " Version="17.7.2" />


Не пойму почему так, ведь файл csproj главного уже содержит в себе
<PackageReference Include="Company.Tests.Package  " Version="X.Y.Z" />


скомпилинного с добавлением Microsoft.NET.Test.Sdk?
  • Вопрос задан
  • 136 просмотров
Решения вопроса 1
@mvv-rus
Настоящий админ AD и ненастоящий программист
Так нужно, потому что ссылки не транзитивны. Средства разработки не могут взять метаданные (описания сборок, классов и т.д.), которые нужны для работы и компилятора, и других средств разработки (IDE, в частности), из ссылок того проекта (по факту - тоже сборки), на который ссылается текущий. Так что для использования какой либо сборки (в данном случае - из состава пакета), ссылку на нее нужно добавлять в проект явно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы