2013-10-16 70 views
3

我們的內部NuGet存儲庫適用於我們的類庫。我創建了一個包含MyPackage版本1.0.0.0的包,它有一個錯誤,所以我推送了包1.0.0.1的新版本(或修訂版)。默認情況下,包管理控制檯中的NuGet安裝舊版本的軟件包

現在,當我創建一個新項目並使用管理NuGet包對話框時,我在安裝包時得到最新版本(1.0.0.1)。但是,當我使用軟件包管理器控制檯進行其他新建項目並鍵入Install-Package MyPackage時,默認情況下會獲得版本1.0.0.0。

爲什麼會發生這種情況?我在NuGet文檔中找不到解釋爲什麼發生這種情況的任何內容,所以它似乎是NuGet.exe中的一個錯誤。

+0

我也遇到了這個問題,下面的修補程序沒有幫助 - 我刪除了緩存版本,然後「安裝」,仍然得到舊版本。 但是,運行更新確實將軟件包更新爲最新版本。任何人都有解決這個問題? –

+0

我在這裏提出了一個關於Nuget codeplex的問題:https://nuget.codeplex.com/workitem/3747 Upvote it,所以有人修復了這個bug! –

+0

謝謝!我把它提高了。我現在不能嘗試下面提出的解決方案,但是從CodePlex上的問題鏈接的問題來看,它現在似乎是NuGet中的一個錯誤。 –

回答

0

嘗試運行Update-Package命令。

該軟件包可能在本地「緩存」,並且當您使用「安裝」時,它只會獲取緩存版本。

您也可以去驗證這一點:

C:\Users\~MyUserName~\AppData\Local\NuGet\Cache\ 

(更換當然〜MyUserName輸入〜)

和刪除從那裏包......那麼 「安裝」。 (這個想法,如果它不在緩存中,它會返回到服務器來獲取它)

+0

Fraid這不適用於我 - 我從我的緩存中刪除了所有包,然後在我們的私人包之一上安裝了安裝包,得到了舊版本。之後運行更新包會提供最新版本,但安裝包應該首先提供最新版本。它適用於nuget.org,但不適用於我們的私人服務器:( –

+0

//安裝包應該在第一時間給出最新版本// ......這是其中一個「如果你這樣做的話,d如果你不是「原始開發者的場景」,那就是爲什麼「更新包」存在......以便轉移到更高版本。所以我關於緩存部分,但是它在某處「記住了」 「什麼是安裝的版本方式,對於所有場景的理解我都不瞭解,但是可能(在某處)有一種情況可能會影響最終開發人員。 – granadaCoder

+0

我知道你的意思,但它看起來你安裝一個軟件包的時間是90%,你需要最新的版本,如果你想要一個老版本,你可以用-version標誌來選擇一個特定的舊版本。 無論哪種方式,意識到對nuget.org運行命令給出了la測試版本,但對我們的本地服務器運行命令不。 –

相關問題