例如,现在是我的.csproj:
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
<PropertyGroup>
<TargetFrameworks>netstandard1.3;net451</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<Compile Include="**\*.cs" />
<EmbeddedResource Include="**\*.resx" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Dapper" Version="1.50.2" />
<PackageReference Include="NETStandard.Library" Version="1.6.1" />
</ItemGroup>
</Project>
Dapper的任何内容都不会在公共API中公开,因此我似乎应该将其作为私有实现细节。但是,在创建测试.nupkg并从.NET Framework控制台应用程序引用它时,该应用程序将获得对Dapper的引用。
答案 0 :(得分:3)
尝试设置PrivateAssets
标志:
<PackageReference Include="Dapper">
<Version>1.50.2</Version>
<PrivateAssets>Runtime</PrivateAssets>
</PackageReference>
来自docs(可能会使用一些澄清):
...这些可以包括以下任何值:
- 编译 - 是可用于编译
的lib文件夹的内容- 运行时 - 是分发的运行时文件夹的内容
- ContentFiles - 是使用的contentfiles文件夹的内容
- 构建 - 使用构建文件夹中的props / targets
- Native - 是复制到运行时输出文件夹的本机资产的内容
- 分析仪 - 使用分析仪
或者,改为:
- 无 - 这些都不会被使用
- 全部 - 所有这些都得到了 使用。