首页 > 解决方案 > 通过 Visual Studio 中的自动接受 Nuget 停止许可证接受弹出窗口

问题描述

是否可以自动接受许可证,以便在我想安装 nuget 包时不会显示弹出窗口,例如下面的一个。

如果我必须安装 5 个 nuget 包,它会显示 5 个项目。理想情况下,它将自动接受所有并且不显示弹出窗口。

在此处输入图像描述

标签: .netvisual-studio.net-corenuget

解决方案


通过 Visual Studio 中的自动接受 Nuget 停止许可证接受弹出窗口

据我所知,目前这不是 VS IDE 中支持的行为。VS IDE 本身没有这个选项来打开/关闭自动接受一个 nuget 包的许可。

如果我必须安装 5 个 nuget 包,它会显示 5 个项目。

a 是否License Acceptance popup会显示在 Visual Studio 实际上取决于 nuget 包的作者是否要求它这样做。所以目前这种行为仅由 nuget 包的作者控制,而不是 VS IDE。

让我为你描述一下:

当一位开发人员想要从他的项目中生成一个 nuget 包时,他可以使用xx.nuspec来定义要发布的包的元数据。他可以把package ID,Authors,version,description...它放进去。在他使用类似nuget pack xx.nuspec或其他类似的包命令后,现在他开发的包包含元数据。

(一个xx.nupkg就是一个xx.zip文件,重命名为xx.zip打开就可以看到内容了)

之后他可以将包发布到nuget.org或其他提要,然后当我们在 VS 中使用它时,我们可以看到如下元数据:

在此处输入图像描述

#1 .现在让我们谈谈您遇到的行为的主要原因。请参阅requireLicenseAcceptance

这是作者可以在xx.nuspec文件中指定以确定的元素之一:

一个布尔值,指定客户端是否必须在安装包之前提示消费者接受包许可证。

所以你遇到的行为是由作者控制的,而不是 IDE。

#2 .为了尊重开发包的作者的选择,License Acceptance popup当我们安装一个包的作者设置了requireLicenseAcceptance=true.

#3 .auto accept license至于您在问题中提到的,我们不建议您自动接受所有这些。正如马特在这里描述的那样:并非所有的 NuGet 包都是免费的,nuget.org但是(虽然?)其中很多都是免费的。所以有些包可能有特殊的许可需要我们审查。

实际上,据我所知,VS IDE 或 VS 扩展不支持这样做...

另外:这里requireLicenseAcceptance有关于该属性的公开讨论。如果有任何更新,您可以跟踪该问题并获取通知。Github/nuget

希望以上所有内容有所帮助,如果我有任何误解,请随时纠正我:)


推荐阅读