Я пытаюсь перенести различные проекты библиотеки C # в решение с использованием нового формата SDK (VS2017 +) .Решение также содержит несколько проектов ASP.NET, которые должны ссылаться на эти библиотеки.
Я знаю, что не могу обновить проекты ASP.NET для использования новой системы сборки на основе SDK на этом этапе.время, но я изменил их, чтобы использовать <PackageReference/>
записи вместо packages.config
файла для ссылок NuGet верхнего уровня.
В решении имеется ряд сценариев зависимости, которые похожи на следующие:
ASP.NET Project
--> Top.Level.Package (NuGet)
--> Project A (csproj)
--> Some.Package (NuGet)
--> Project C (csproj)
--> Some.Other.Package (NuGet)
--> Project B (csproj)
--> Project C (csproj)
--> Some.Other.Package (NuGet)
Т.е. проект ASP.NET ссылается на пакет NuGet верхнего уровня, проект A и проект B;Проект A ссылается на пакет NuGet и проект C;Проект B ссылается на проект C;и Project C ссылается на пакет NuGet.Все не -ASP.NET проекты были изменены, чтобы быть SDK-проектами, использующими записи <PackageReference/>
для ссылок на пакеты NuGet, и все транзитивные зависимости между ними проходят без проблем.
Проблема, с которой я сталкиваюсьзаключается в том, что при сборке приложения ASP.NET MSBuild правильно копирует сборки для проектов A и Project B, а также сборки из ссылок на пакеты NuGet верхнего и транзитивного уровня в папку bin
, но это не таккопирование выходных данных переходного проекта C, который требуется как для проекта A, так и для проекта B.
Есть ли прямой способ обойти это, кроме добавления ссылок на проекты верхнего уровня в проектах ASP.NET в "отсутствующие "проекты?