Visual studio 2010 NuGet软件包管理器控制台:";更新包-项目…“;不';t更新所有已安装的软件包
我在ProjectX中有一个包配置,如下所示:Visual studio 2010 NuGet软件包管理器控制台:";更新包-项目…“;不';t更新所有已安装的软件包,visual-studio-2010,nuget,package-management,Visual Studio 2010,Nuget,Package Management,我在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" /
<?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>
我看到以下输出:
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
,为什么不在输出中列出呢?我知道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 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>
您的
软件包\repositories.config是否存在且正确
因为大多数人不签入packages文件夹,所以文件会丢失。一些NuGet命令首先在那里查找,然后失败。某些操作(例如在项目中安装包)将导致重新生成
我遇到了一个非常类似的问题,更新不起作用,但一旦我添加了一个新项目,它们就开始正常工作了。看起来你的状态不好?在1.5中,我们正在做一些工作,以便在安装时规范化packages.config,从而避免出现重复的包。将packages.config视为可能在解决方案级别(也称为packages文件夹)安装的组件的子集。如果此处列出了某些内容,但不在解决方案文件夹中,则该内容仍未安装。
'MyCompany.Enum 1.5.0.1' already installed.
Successfully added 'MyCompany.Enum 1.5.0.1' to MyCompany.Services.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" />
<package id="MyCompany.Enum" version="1.5.0.1" />
</packages>