背景:
我正在为我的公司创建项目的NuGet包,这些NuGet包将被安装到其他内部项目。目前,我正在使用.NET标准/核心项目的内置功能。但是,我们所有的项目都安装了一个“包装器NuGet包”来进行一些代码分析(StyleCop NuGet包+公司特定的规则集文件和Json文件)。
如果我想要将一个(我创建的) NuGet包安装到另一个项目中,它总是添加对我们的样式分析器NuGet包的依赖。
这是安装在项目中的样子:

问题:
有没有办法在创建NuGet包的时候,移除对特定NuGet包的依赖?也就是说,有没有一种方法可以在(.csproj文件)行中做一些事情:
<ItemGroup>
<PackageReference Condition="'$(Configuration)'=='Debug'" Include="CompanyStyleAnalyzer" Version="1.1.6" />
</ItemGroup>但是,当我在“发布”配置中构建项目时,我总是希望删除依赖项,而不是指定实际的版本,或者更好的是,每次运行Dotnet包时,指定不在最终包中包含依赖项。
这是一种在项目中移除依赖项的“不受欢迎”的方式吗?
我之前生成NuGet包(在.Net框架中)的方法是使用NuGet CLI - pack命令,然后提取文件并编辑.Nuspec文件以手动删除依赖项。我不想编辑Nuspec文件并重新打包包。
有人能具体说明我在这方面能做些什么吗?
发布于 2020-11-20 06:43:53
根据@Ian-Kemp的评论,这可以通过在PackageReference下使用the PrivateAssets element来实现
<ItemGroup>
<PackageReference Include="CompanyStyleAnalyzer" Version="1.1.6" />
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>https://stackoverflow.com/questions/64786290
复制相似问题