2017-11-29 18 views
0

私はプログラム的にアングレットパッケージをインストールしています。私は2つのナゲットソースsrc1とsrc2を持っています。 MyNugetPackageにはいくつかの依存関係AAAとBBBがありました。 MyNugetPackageはsrc1経由で利用でき、AAAとBBBはsrc2経由で利用可能です。エラーパッケージAAAとBBBがソースsrc1に見つかりました。 InstallPackageパッケージをsrc1のMyNugetPackageとsrc2のAAA BBBからインストールする方法を教えてください。私は "All"がソースであると指定しています。IVsPackageInstallerパッケージがソースに見つかりませんでした

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); 

私はパッケージマネージャコンソールからインストールしようとAAA.2.0.0とBBB.2.0.0は、フォルダCに存在しているにもかかわらず、次のエラーを得た:\ユーザー\ユーザー\ソース\レポ\ Testpro \ packages:

インストールに失敗しました。 ロールバック... パッケージ '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 \ユーザーレポ\ Testpro \パッケージ'

答えて

0

IVsPackageInstallerパッケージはソース

に見つからない\ユーザー\出典

私の知る限り、NuGet Visual Studio拡張3.x以降では、「すべて」のソースはサポートされていません。この機能はNuGet 2.xに存在しました。 "All"キーワードは、3.x NuGet Visual Studio拡張で特別な意味を持ちません。

この問題を解決するには、 ""の代わりに "null"ソースを使用します。ユーザーが設定したパッケージソースからパッケージをインストールする場合は、nullを使用することをお勧めします。

さらに詳しい情報についてはsimilar issue on GitHubをご覧ください。

これが役に立ちます。

関連する問題