[英]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
msiexec
安装 packageq
告诉msiexec
在没有用户交互的情况下执行。 n
将 UI 级别设置为No UI
。 这些有助于确保安装程序在无人值守的安装过程中不要求输入。/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.