簡體   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