C# 如何从类库NuGet包中排除包?
我有一个C# 如何从类库NuGet包中排除包?,c#,xml,visual-studio,nuget,nuget-package,C#,Xml,Visual Studio,Nuget,Nuget Package,我有一个.NET标准类库项目,它将构建到一个NuGet包中。我已经安装了docfx.console软件包,这样每次构建时都可以生成一个文档网站 现在,当另一个项目安装我的库的NuGet包时,docfx.consoleNuGet包也会被安装,这是我不想要的 在Package下的项目属性中,我选择了在构建时生成NuGet Package。这将在我构建库时自动为库生成NuGet包。但是在这个选项卡中,我看不到任何可以配置为排除任何包的地方 因此,为了排除docfx.console包,我创建了一个包含以
.NET标准
类库项目,它将构建到一个NuGet包中。我已经安装了docfx.console
软件包,这样每次构建时都可以生成一个文档网站
现在,当另一个项目安装我的库的NuGet包时,docfx.console
NuGet包也会被安装,这是我不想要的
在Package下的项目属性中,我选择了在构建时生成NuGet Package。这将在我构建库时自动为库生成NuGet包。但是在这个选项卡中,我看不到任何可以配置为排除任何包的地方
因此,为了排除docfx.console
包,我创建了一个包含以下内容的.nuspec文件:
<?xml version="1.0" encoding="utf-8" ?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<!-- Required elements-->
<id>My.Library</id>
<version>1.0.1</version>
<description>My Library's project dscription.</description>
<authors>Me</authors>
<copyright>My Copyright (c)</copyright>
<!-- Optional elements -->
<dependencies>
<dependency id="docfx.console" version="2.36.1" exclude="build" />
</dependencies>
<!-- ... -->
</metadata>
<!-- Optional 'files' node -->
</package>
我的图书馆
1.0.1
我的库的项目描述。
我
我的版权(c)
但它不起作用。在构建NuGet包时,如何更正它以排除docfx.console
包
或者,是否有其他方法可以将docfx.console
包从NuGet包中排除
如何从类库NuGet包中排除包
根据NuGet官方文件:
您可能纯粹将依赖项用作开发工具和工具
可能不想将其公开给将消耗您的资源的项目
包裹在此场景中,您可以使用PrivateAssets元数据
控制这种行为
<ItemGroup>
<!-- ... -->
<PackageReference Include="Contoso.Utility.UsefulStuff" Version="3.6.0">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<!-- ... -->
</ItemGroup>
或
尝试将
all
添加到项目中docfx.console
的PackageReference
。虽然这成功隐藏了依赖项,但在我的情况下,我在子项目中隐藏了依赖项,然后通过父项目中的nuget获取子项目,并对使用依赖项的子项目调用一些方法。在本例中,我得到一个TypeInitilationException,其中包含System.IO.FileNotFoundException:无法加载文件或程序集的NLog。。。在我的例子中,我在工具库中包装Nlog并调用包装器。你知道怎么解决这个问题吗?
<ItemGroup>
<PackageReference Include="docfx.console" Version="2.36.2" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="docfx.console" Version="2.36.2">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<dependencies>
<dependency id="docfx.console" version="2.36.1" />
</dependencies>