【发布时间】:2019-09-09 23:20:25
【问题描述】:
我想提供一个我创建的项目的 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 不存在。)
【问题讨论】: