繁体   English   中英

运行 install-package 而不提示安装 nuget

[英]run install-package without it prompting to install nuget

我正在尝试在一组远程计算机上使用 install-package 安装 msi,但我不断收到安装 nuget 的交互式提示。 有什么办法可以关闭该提示?

install-package software.msi

The provider 'nuget v2.8.5.208' is not installed.
nuget may be manually downloaded from
https://onegetcdn.azureedge.net/providers/Microsoft.PackageManagement.NuGetProvider-2.8.5.208.dll and installed.
Would you like PackageManagement to automatically download and install 'nuget' now?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"):

我认为您正在寻找msiexec ,而不是Install-Package ,因为后者会从存储库中安装特殊格式的 package 。

如果你想用msiexec安装software.msi ,你可以这样做:

msiexec /i $pathToSoftwareMsi /qn

如果要将安装日志写入文件,可以添加日志记录参数:

msiexec /i $pathToSoftwareMsi /qn /l*v $pathToOutputLogFile

解释参数

  • /i :告诉msiexec安装 package
  • /qn : q告诉msiexec在没有用户交互的情况下执行。 n将 UI 级别设置为No UI 这些有助于确保安装程序在无人值守的安装过程中不要求输入。
  • /l*v :将 output 记录到指定文件。 /l表示要将 output 记录到文件中, *v表示所有记录选项加上详细。

您可以通过运行msiexec /?查看全部选项

显然,您可以从Install-Package安装原始 MSI。 为了不提示安装 Nuget 提供程序,以及防止发生其他提示,请使用 MSI 提供程序运行Install-Package

Install-Package -ProviderName msi -Force software.msi

并不是说这是不可能的,但从表面上看,我看不到将额外的 arguments 传递到 Powershell 6 及更高版本的 MSI 的方法(Powershell 5.1 确实有一个-AdditionalArguments参数)。 因此,如果您的 MSI 安装程序确实需要传入其他参数,请记住这一点。如果我找到了这样做的方法,我将更新答案。

Nuget 安装命令:

install-packageprovider nuget -force

Install-Package 主要用于在 .NET 项目的上下文中安装 NuGet 包。

要安装 msi,您可以只运行 msi 或使用 msiexec。 我在这里找到了一个很好的解释: https://powershellexplained.com/2016-10-21-powershell-installing-msi-files/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM