web-dev-qa-db-ja.com

「パッケージが見つかりません」というnugetエラーの解決方法

プロジェクト参照として追加された別のプロジェクト(B.csprojec)に依存するプロジェクト(A.csproj)のnuget pkgの作成に取り組んでいます。
これが.nuspecです。

<?xml version="1.0"?>
<package >
  <metadata>
    <id>A.Client</id>
    <title>A.Client</title>
    <description>HttpClient and Models for calling the A Microservice.</description>
    <version>1.0.2</version>
    <authors></authors>
    <owners></owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <copyright>.</copyright>
    <tags></tags>
    <dependencies>
      <group targetFramework=".NETFramework4.5">
        <dependency id="Newtonsoft.Json" version="9.0.1" exclude="Build,Analyzers" />
        // <dependency id="B" version="1.0.0"/> tried this but same error
      </group>
      <group targetFramework=".NETStandard2.0">
        <dependency id="Newtonsoft.Json" version="9.0.1" exclude="Build,Analyzers" />
        // <dependency id="B" version="1.0.0"/> tried this but same error
      </group>
    </dependencies>
    <frameworkAssemblies>
      <frameworkAssembly assemblyName="System.Net.Http" targetFramework=".NETFramework4.5" />
    </frameworkAssemblies>
  </metadata>
  <files>
    <file src="bin\$configuration$\netstandard2.0\A.dll" target="lib\netstandard2.0" />
    <file src="bin\$configuration$\net45\A.dll" target="lib\net45" />
  </files>
</package>

使った

nuget pack A.nuspec -Properties configuration=debug

パッケージを生成します。しかし、c.csprojc内でこのパッケージを使用しようとすると、次のエラーが発生します

Severity    Code    Description Project File    Line    Suppression State
Error   NU1101  Unable to find B. No packages exist with this id in source(s): Local Package source, Microsoft Visual Studio Offline Packages, nuget.org, Package source    

私は何を取りこぼしたか ?

3
yesIcan

私はこれをやっただけでうまくいきました。 Visual Studioで、次の場所に移動します。

  1. ツール
  2. Nugetパッケージマネージャー
  3. 一般的な
  4. [すべてのNugetキャッシュをクリア]ボタンをクリックします
  5. リソースをパッケージ化し、[更新]をクリックします
  6. ウーラー!エラーが発生しました...
5
Israel Ocbina

パッケージソースがオフラインでした!!

システムにVS2017 Professionalをインストールし、既存のプロジェクトを開いたところ、複数のパッケージが見つからないことがわかりました。パッケージソースを見ずに、できる限りのことを試しました!!

Manage Nuget Packages for Solution

私は以下の解決策を試したのでこの答えを書いていますが、どれもうまくいきませんでした:

  1. キャッシュをクリアする
  2. パッケージの復元または再インストール
  3. TargetFrameworkの変更
  4. Nugetパッケージマネージャーの更新

ソリューション

ステップ01。Package Manager Settings(Tools> Nuget Package Manager> Package Manager Settings)に移動します- Nuget Package Manager > Package Manager Settings

ステップ02。パッケージソースを確認します。ご覧のように、パッケージソースはここにすでにダウンロードされたSDK/nugets/packagesです。理由はわかりませんが、Visual Studioのシステムインストールにnuget.orgのオンラインパッケージソースがありませんでした。

enter image description here

ステップ03. nuget.orgをパッケージソースとしてインストールし、[すべてのNugetキャッシュをクリア]してからパッケージを復元します。エラーはなくなります。

名前:nuget.org(または希望どおり)ソース: https://api.nuget.org/v3/index.json

enter image description here

4
jainashish

依存ファイルを追加することでこれを解決しました

<files>
    <file src="bin\$configuration$\netstandard2.0\a.dll" target="lib\netstandard2.0" />
    <file src="bin\$configuration$\net45\a.dll" target="lib\net45" />
    <file src="bin\$configuration$\netstandard2.0\b.dll" target="lib\netstandard2.0" />
    <file src="bin\$configuration$\net45\b.dll" target="lib\net45" />
  </files>

また、ローカルキャッシュをクリーンアップすることを忘れないでくださいnuget locals all –cleanまたはバージョンを変更します。

0
yesIcan