簡體   English   中英

NuGet Package 管理器控制台:“update-package -project ...”不會更新所有已安裝的軟件包

[英]NuGet Package Manager Console: “update-package -project …” doesn't update all installed packages

我在 ProjectX 中有一個包配置,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Castle.Core" version="2.5.2" />
  <package id="Castle.Windsor" version="2.5.3" />
  <package id="CommonServiceLocator" version="1.0" />
  <package id="MyCompany.Enum" version="1.1.0.11" />
  <package id="MyCompany.Common" version="1.1.0.9" />
  <package id="MyCompany.Castle.Installers" version="1.1.0.13" />
</packages>

當我在 Package 管理控制台中發出以下命令時:

update-package -project ProjectX

我看到以下 output:

No updates available for 'MyCompany.Castle.Installers'.
No updates available for 'CommonServiceLocator'.
No updates available for 'Castle.Windsor'.
No updates available for 'Castle.Core'.

我碰巧知道有一個更新的MyCompany.Enum ,那么為什么它沒有列在 output 中? 我知道 NuGet 在安裝時會嘗試使用最低的合適版本,但在這種情況下,我希望update-package將其更新到最新版本。

我嘗試使用以下命令強制它更新MyCompany.Enum

update-package -project MyCompany.Services.MyService MyCompany.Enum

而這一次得到了一個錯誤信息:

Update-Package : Unable to find package 'MyCompany.Enum' in 'MyCompany.Services.MyService'.
At line:1 char:15
+ update-package <<<<  -project MyCompany.Services.ProjectX MyCompany.enum
    + CategoryInfo          : NotSpecified: (:) [Update-Package], InvalidOperationException
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.UpdatePackageCommand

這很奇怪,因為MyCompany.Enum既列在packages.config,又被解決方案資源管理器中的 ProjectX 引用。

對此有何解釋? 如果它是 nuget 錯誤,很好,但我希望我誤解了它的工作原理。 我聽說過repositories.config發生了類似的奇怪事情,但無法將這些問題與我在這里看到的問題聯系起來。

提前謝謝了。

更新
如果我手動將MyCompany.Enum package 安裝到 ProjectX,請使用以下命令:

install-package -project ProjectX MyCompany.Enum

然后我得到這個 output:

'MyCompany.Enum 1.5.0.1' already installed.
Successfully added 'MyCompany.Enum 1.5.0.1' to MyCompany.Services.ProjectX.

但遺憾的是,現在我的packages.config文件中有兩個MyCompany.Enum實例:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Castle.Core" version="2.5.2" />
  <package id="Castle.Windsor" version="2.5.3" />
  <package id="CommonServiceLocator" version="1.0" />
  <package id="MyCompany.Enum" version="1.1.0.11" />
  <package id="MyCompany.Common" version="1.1.0.9" />
  <package id="MyCompany.Castle.Installers" version="1.1.0.13" />
  <package id="MyCompany.Enum" version="1.5.0.1" />
</packages>

您的packages\repositories.config是否存在且正確?

因為大多數人不檢查包文件夾,所以文件會丟失。 一些 NuGet 命令首先查看那里,然后失敗。 某些操作(例如在項目中安裝 package)會導致它重新生成。

我有一個非常相似的問題,更新不起作用,但是一旦我添加了一個新項目,它們就會開始正常工作。

暫無
暫無

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

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