красиво и понятно - просто чтобы подчеркнуть то, что вы сказали (но что мне удалось пропустить в первый раз). Ссылочной цепочкой является Web-> Services-> Business, и именно в SERVICES вам нужно добавить PrivateAssets = "All", чтобы скрыть Business от Web (я помещал его в Web-> Services ProjectReference, который не работал - я просто нужно внимательнее прочитать ваш ответ!)
у веб-сайт MVC с использованием ASP.NET Core 2.0.
В проекте ASP.NET Core (назовем егоWeb
) Я ссылаюсь на проект .NET Standard 2 в том же решении (назовем егоService
).Service
Проект также ссылается на третью библиотеку .NET Standard 2 в решении (назовем этоBusiness
).Business
Проект объявляет тип с именемModel
.
Проблема в том, что я могу использоватьModel
вWeb
проект (т.е. компилятор видит типModel
и я могу сделатьvar a = new Model();
) как будтоWeb
проект ссылалсяBusiness
, но это на самом деле имеет только ссылку наService
.
Как я могу спрятатьсяModel
изWeb
? Это новая функция в ASP.NET Core 2 или все проекты .NET Standard похожи на это?
редактировать
Как указаноВотЭто связано с переходными ссылками на проекты, которые являются новой «функцией» в .NET Standard, но как мне это исправить?