Почему мой проект ссылается на другие ссылки? - PullRequest
0 голосов
/ 15 октября 2018

Мы начали переход на новый тип проекта для .NET Standard и использовали инструмент, который Гансельман связал в этом сообщении в блоге .

Одна особенность, которую мы заметили, заключается в том, что проекттеперь получает ссылки на проекты, которые есть у этих ссылок.Я настроил образец и подтвердил, что это не просто наше основное приложение.Для основного приложения, скажем, у нас есть

Консольное приложение: TestingSomeStuff

Стандартная сетевая библиотека: Library1

Стандартная сетевая библиотека: Library2

В этой ситуации у нас есть следующие ссылки:

TestingSomeStuff -> Library1 -> Library2

По какой-то причине TestingSomeStuff, что не напрямуюссылка Library2 может получить доступ к типам в Library2, и это только кажется неправильным.Я устанавливаю ту же ситуацию в приложении .NET Framework, и TestingSomeStuff не имеет доступа к Library2.

Чтобы создать приложение с соответствующими слоями, нам нужна возможность заблокировать TestingSomeStuff доступ к Library2 в качестве проходного, и я не могу найти никакой информации о том, как к этому подойти.

Я попытался установить IncludeAssets, ExcludeAssets и другие параметры, подобные этому, но ничего не помогло.

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Хорошо, я выяснил, что здесь происходит, это была моя ошибка, но я оставляю вопрос не удаленным для сообщества.Я был неправ в утверждении, что «ExcludeAssets» не работаетTestingSomeStuff

-Library1

- Library3

-Library2

- Library3

Я только тестировал ExcludeAssets =Все на Библиотеке 1, так что она все еще ссылалась на нее через ссылку на Библиотеку 2.

0 голосов
/ 15 октября 2018

Это новинка для новых проектов MSBuild для .NET Core.Если вы хотите что-то скрыть, отметьте это как internal в Library2 и используйте атрибут InternalsVisibleTo и предоставьте доступ к Library1.

...