通过在视觉范围内自动接受 Nuget 来停止许可证接受弹出窗口
工作室
据我所知,目前这不是 VS IDE 中支持的行为。 VS IDE 本身没有这个选项来打开/关闭自动接受一个 nuget 包的许可。
如果我必须安装 5 个 nuget 包,它会显示 5 个项目。
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.为了尊重开发包作者的选择,当我们安装一个作者设置requireLicenseAcceptance=true的包时,VS IDE会提示License Acceptance popup。
#3。至于您在问题中提到的auto accept license,我们不建议您全部自动接受。正如 Matt 所述 here:并非所有 NuGet 软件包在 nuget.org 上都是免费的,但是(尽管如此?)其中很多都是免费的。所以有些包可能有特殊的许可需要我们审查。
事实上,据我所知,VS IDE 没有选项或支持 VS 扩展来执行此操作...
另外:在Github/nugethere 中有一个关于requireLicenseAcceptance 属性的公开讨论。如果有任何更新,您可以跟踪该问题并获取通知。
希望以上所有内容有所帮助,如果我有任何误解,请随时纠正我:)