web-dev-qa-db-ja.com

asp.netコアrc2を使用したVisual Studio Team Servicesからの不正なnugetパッケージ

Asp.netコアWebアプリケーション(RC2)のVisual Studio Team Servicesフィードからnugetパッケージをインストール/復元できません。以下を受け取ります:

エラー:応答ステータスコードは成功を示しません:401(不正)。

Visual Studio Community 2015 Update 2とnugetバージョン3.4.4を実行しています。このフィードのパッケージを他の種類のプロジェクトにインストール/復元できます。

Asp.netコアWebアプリの資格情報を渡すには、他に何かする必要がありますか?

再現手順:

チームサービスのパッケージタブから[フィードに接続]を選択し、NuGetパッケージのソースURLをコピーします

Visual Studioの場合->ツール-> NuGetパッケージマネージャー->パッケージマネージャー設定->パッケージソース、vsoからのフィードURLの追加

次に、ASP.NET Core Webアプリケーション(.NET Framework)プロジェクトから[参照]を右クリックし、[NuGetパッケージの管理]-> [パッケージソースからフィードを選択(パッケージが一覧表示されます)]-> [クリックしてインストール]

出力:

Installing NuGet package xxxxx 
Successfully installed xxxxx to WebApplication1
========== Finished ==========

次に、パッケージを復元しようとしますが、その時点で取得します。

error: Response status code does not indicate success: 401 (Unauthorized).
error: Failed to retrieve information from remote source

Webプロジェクト参照内-パッケージに警告アイコンがあります-NU1001依存関係xxxxxを解決できませんでした

15
HPaxton

私の側で問題を再現できます。以下は、パッケージの復元に使用する回避策です。

  1. 「VS\Tools\NuGet Package Manager\Package sources」からVSTSフィードリソースを削除します。
  2. VSTS Webポータルから[パッケージ]タブを開きます。
  3. 接続するフィードを選択し、[フィードに接続]オプションをクリックします。
  4. ダイアログで「パーソナルアクセストークン」メソッドを選択します。
  5. 生成されたコマンドをダイアログにコピーします。
  6. マシンで管理者としてCMDを実行します。
  7. コピーしたコマンドをCMDに貼り付けます。
  8. コマンドの後に「-StorePasswordInClearText」引数を追加します。
  9. コマンドを実行します。
  10. VSを再起動します。
  11. パッケージをインストールして復元します。
7

私はそれがまったく同じ問題ではないことを知っていますが、私のように人々はこれと一緒にこの問題に遭遇するかもしれません。

VS Community 2019をインストールし、昨日VS 2017を削除することにしましたが、その後、会社が作成したNuget Packagesを復元しようとすると、401のエラーが表示され始めました無許可

いくつかのネット検索を行った後、VSの構成とファイルをいじりたくないと判断したとき、それは404であり、アカウントに関連付けられているため、次のようになりました。

  • 終了VS2019
  • Windows管理資格情報に移動し、パッケージに関連するものをすべて削除しました
  • VS 2019を再開し、私のソリューションのNugetパッケージを復元しました。彼らは私の資格情報を求め、それを設定し、すべてがここからうまくいきました。

削除して再作成した2つのアカウントは次のとおりです。

enter image description here

11
Pimenta

私にとっての問題は、プライベートなオンプレミスのAzure Artifacts NuGetフィードに接続するときに、資格情報が正しくない(ドメインを指定していない)ためでしたが、すぐにはわかりませんでした。

Visual Studio 2019を使用して、プロジェクトのNuGetパッケージマネージャーを開きます。 [参照]タブが最初に表示され、パッケージソースがプライベートNuGetフィードである場合、最初にすべてのパッケージが一覧表示されるため、問題はないようです。ただし、[インストール済み]タブに切り替えると、ログインダイアログがポップアップ表示されます。

ユーザー名とパスワードを入力するとドメインなしドメイン(sousernameinteaddomain/username)、これは受け入れられるように見えますが、インストールされているバージョン以外のバージョンが私のインストール済みパッケージにリストされていません。 [参照]タブに移動すると、次のエラーが表示されます。

enter image description here

[出力にエラーを表示]をクリックすると、次のように表示されます。

ソースからのメタデータの取得に失敗しました ' https:// [domain]/[Collection]/_packaging/[GUID] /nuget/v3/query2/?q=&skip=0&take=26&prerelease=true&semVerLevel=2.0. '。 応答ステータスコードは成功を示しません:401(無許可)

これを解決するには、資格情報マネージャーでVisual Studioを閉じてから、Azure DevOpsサーバーに関連する資格情報をすべて削除します(例:[domain]VSCredentials_[domain])。これらのユーザー名に間違ったドメインが表示されていることに気付きました。ActiveDirectoryドメインではなく、Azure DevOpsサーバードメインが表示されていました。

次に、Visual Studioを再度開き、NuGetパッケージマネージャーを再度開き、今回は([インストール済み]タブで)ドメインを含む資格情報を入力します(domain/username )。これで問題が解決し、Azure Artifact NuGetフィードに接続できます。

1
Neo

VSTSビルド定義のNuGet Restoreタスクで同様の問題(認証なし)がありました。解決策は、公式および私のカスタムフィードへの参照を含むNuGet.configファイルをプロジェクトのルートに追加することでした。多分それはあなたのコアプロジェクトにも役立ちます。

    <?xml version="1.0" encoding="utf-8"?>
<configuration>

  <packageSources>
    <clear />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
    <add key="RmlrTools" value="https://<MyProjectName>.pkgs.visualstudio.com/DefaultCollection/_packaging/<MyFeedName>/nuget/v3/index.json" />
  </packageSources>
  <!-- used to store credentials -->
  <packageSourceCredentials />
  <!-- Used to specify which one of the sources are active -->
  <activePackageSource>
    <!-- this tells only one given source is active -->
    <add key="NuGet official package source" value="https://nuget.org/api/v2/" />
    <!-- this tells that all of them are active -->
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
  <!-- Used to disable package sources  -->
  <disabledPackageSources />
  <!-- 
  Used to specify default API key associated with sources. 
  See: NuGet.exe help setApiKey
  See: NuGet.exe help Push
  See: NuGet.exe help mirror
  -->
  <!--<apikeys>
    <add key="http://MyRepo/ES/api/v2/package" value="encrypted_api_key" />
  </apikeys>-->
</configuration>
1
Frederic

上記のいずれかを試す前に、コンピュータを再起動してみてください。

1
Venkata Tata

また、 here は、「。NET Core」セクションでその方法を示すドキュメントです。

0
Fabio Reis