У меня есть проект .NET Standard, в котором я реализовал модуль для платформы ASP.NET Core CMS. В настоящее время он использует библиотеки инфраструктуры CMS, поступающие из пакетов NuGet. Если я возьму исходный код платформы CMS из GitHub и добавлю свой модуль в его решение и заменим ссылки на пакеты на фактические ссылки на проект, он будет работать нормально.
Моя цель - заставить его работать без обновления ссылок в файле csproj, поэтому, если проект добавлен в решение с полным исходным кодом, используйте ссылки проекта, в противном случае используйте ссылки на пакеты NuGet.
Итак, скажем, проект .NET Standard называется «ModuleA». Он имеет ссылку на пакет ModuleB:
<ItemGroup>
<PackageReference Include="ModuleB" Version="1.0.0" />
</ItemGroup>
Когда я хочу использовать ModuleA в решении, где доступен ModuleB, я использую ссылку на проект:
<ItemGroup>
<ProjectReference Include="..\..\ModuleB\ModuleB.csproj" />
</ItemGroup>
Я бы хотел как-то включить их обоих в файл .csproj и сделать так, чтобы он использовал правильные ссылки при сборке (например, на основании некоторых условий, таких как проект существует?).
Если оба будут добавлены в csproj, сборка завершится неудачно (например, «Невозможно найти проект ... ModuleB.csproj. Проверьте, что ссылка на проект действительна и этот файл проекта существует.»).