【问题标题】:IVsPackageInstaller package not found on source在源代码上找不到 IVsPackageInstaller 包
【发布时间】:2017-11-29 18:53:03
【问题描述】:

我正在以编程方式安装一个 nuget 包。我有 2 个 nuget 源 src1 和 src2。 MyNugetPackage 有一些依赖项 AAA 和 BBB。 MyNugetPackage 可通过 src1 获得,AAA 和 BBB 可通过 src2 获得。我在源 src1 上发现错误包 AAA 和 BBB。如何让 InstallPackage 包从 src1 安装 MyNugetPackage,从 src2 安装 AAA BBB?我已经指定“全部”是来源。

var componentModel = (IComponentModel)Package.GetGlobalService(typeof(SComponentModel));

var installerServices = componentModel.GetService<IVsPackageInstallerServices>();
var installer = componentModel.GetService<IVsPackageSourceProvider>();
installer.InstallPackage("All", project, "MyNugetPackage", (Version)null, false);

我尝试从包管理器控制台安装并收到以下错误,即使文件夹 c:\users\user\Source\Repos\Testpro\packages 中存在 AAA.2.0.0 和 BBB.2.0.0:

安装失败。 滚回来... 包“MyNugetPackage.5.6.1.7358:AAA [2.0.0, ), BBB [2.0.0, )”在项目“Testpro”中不存在 包 'MyNugetPackage.5.6.1.7358 : AAA [2.0.0, ), BBB [2.0.0, )' 在文件夹 'c:\users\user\Source\Repos\Testpro\packages' 中不存在

【问题讨论】:

    标签: c# visual-studio nuget


    【解决方案1】:

    IVsPackageInstaller 包在源中找不到

    据我所知,NuGet Visual Studio 扩展 3.x 及更高版本不支持“全部”源。 NuGet 2.x 中确实存在此功能。所以“All”关键字在 3.x NuGet Visual Studio 扩展中没有特殊含义。

    要解决此问题,您可以尝试使用“null”源而不是“All”。使用 null 是从用户配置的包源安装包的推荐方式。

    有关更多详细信息,请参阅similar issue on GitHub

    希望这会有所帮助。

    【讨论】:

    • 我在 vs2017 中遇到了同样的问题,我将所有更改为 null,但我仍然得到“没有为给定源存储库和解析上下文找到 MyPackage 的最新版本”但相同的代码适用于 vs2013
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 2015-05-27
    • 1970-01-01
    • 2019-01-27
    • 2012-12-17
    • 2011-09-14
    • 2019-01-28
    相关资源
    最近更新 更多