Я хочу предоставить пакет NuGet для проекта, который я создал, но у меня есть некоторые проблемы с «скрытием» зависимостей.
Возможна ли следующая конфигурация?
- Невключить ссылки на проекты в качестве зависимостей NuGet.
- Разрешить потребителям использовать код из зависимости A.
- Полностью скрыть зависимость B от потребителя.
Чтобы удалить все зависимости NuGetи чтобы скрыть зависимости типа B, я попытался сделать следующее:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<!-- PrivateAssets to remove NuGet depencies -->
<ItemGroup>
<ProjectReference Include="..\A.csproj" PrivateAssets="All" />
<ProjectReference Include="..\B.csproj" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
<BuildOutputInPackage Include="$(OutputPath)A.dll" />
<!-- B is hidden, so not included -->
</ItemGroup>
Проблема заключается в том, что во время выполнения происходит сбой внутреннего кода NuGet, поскольку он не может найти зависимость B и ее зависимости.(Это очевидно, потому что DLL там нет.)