我有一个 .NET Standard
类库项目,它将构建到NuGet包中 . 我已经安装了 docfx.console
软件包,以便每次构建时都可以生成文档网站 .
现在,当另一个项目安装我的库的NuGet包时,也会安装 docfx.console
NuGet包 - 这是我不想要的 .
在Package下的项目属性中,我选择了 Generate NuGet package on build . 当我构建它时,这将自动为我的库生成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>
但它没有用 . 在构建NuGet包时,如何更正它以排除 docfx.console
包?
或者,有没有其他方法可以从NuGet包中排除 docfx.console
包?
1 回答
根据NuGet官方文档Controlling dependency assets:
<PackageReference Include =“Contoso.Utility.UsefulStuff”Version =“3.6.0”>
<PrivateAssets>所有</ PrivateAssets>
</ PackageReference>
<! - ... - >
</的ItemGroup>
因此,正如UserName所评论的那样,您可以在项目中将
<PrivateAssets>all</PrivateAssets>
添加到PackageReference
的docfx.console
中 .To accomplish this ,编辑您的项目文件
.csproj
如下:要么
如果您使用的是
.nuspec
文件,则应在.nuspec
文件中移动以下依赖项信息: