簡體   English   中英

如何在軟件包管理器控制台中“更新 - 打包”到以前的版本?

[英]How Can I “Update-Package” to a Previous Version in the Package Manager Console?

我在我的項目中安裝了一個軟件包版本,但在測試期間我發現了它的問題。 我嘗試了顯而易見的事情Update-Package -Id Foo.Bar -Version 1.0.0 -Force但Update-Package cmdlet沒有-Force參數,並且它不允許更新早期版本。 如何降級我的包依賴項(不使用源代碼控制!)


注意:此問題現在無關緊要,因為Update-Package MyPackage -Version [an earlier version]在最新版本的NuGet Package Manager中開箱即用。 你甚至不需要-Force開關。

我想我已經有了解決方案,所以我把它放在這里(建設性的)批評。

function Reinstall-Package {

    param(
        [Parameter(Mandatory = $true)]
        [string]
        $Id,

        [Parameter(Mandatory = $true)]
        [string]
        $Version,

        [Parameter(ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)]
        [string]
        $ProjectName,

        [switch]
        $Force
    )

    if (-not $ProjectName) {
        $ProjectName = (get-project).ProjectName
    }

    Uninstall-Package -ProjectName $ProjectName -Id $Id -Force:$Force
    Install-Package -ProjectName $ProjectName -Id $Id -Version $Version

}

這允許我們使用諸如以下的調用來更新當前解決方案中對包的所有引用。

 Get-Project -All |
     ?{ $_ | Get-Package | ?{ $_.Id -eq 'Foo.Bar' } } |
         %{ $_ | Reinstall-Package -Id Foo.Bar -version 1.0.0 -Force }

-Force開關允許重新安裝包,即使它在項目中具有依賴包。

https://docs.nuget.org/consume/package-manager-console-powershell-reference

使用NuGet 2.8客戶端或更高版本 ,如有必要,可以使用Install-Package降級項目中的現有軟件包。 例如,如果您已經安裝了軟件包的預發布版本以試用新功能但又希望返回到以前的穩定版本,則可以使用Install-Package(或Update-Package)執行此操作。

我有依賴於log4net v2的Foo.Bar v1,我需要將log4net依賴關系降級到1.2.10,所以我做了Foo.Bar v1.1依賴於log4net v1.2.10。

我發現如果你Update-Package Foo.Bar它將更新到最新版本(它不會重新安裝依賴項)

但是你可以Update-Package -Id Foo.Bar -Reinstall ,那應該用當前的依賴關系重新安裝整個東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM