как решить ошибку «Не удается найти пакет» - PullRequest
0 голосов
/ 18 сентября 2018

Работает над созданием nuget pkg для проекта (A.csproj), который зависит от другого проекта (B.csprojec), добавленного в качестве ссылки на проект.
Вот .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    

Что я пропустил?

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Я только что сделал это, и все прошло хорошо. В вашей Visual Studio перейдите по адресу:

  1. Инструменты
  2. Диспетчер пакетов Nuget
  3. Общее
  4. Нажмите кнопку «Очистить все кэш-память Nuget»
  5. Пакет ресурсов и нажмите «Обновить»
  6. Woolah! Ошибка исчезла ...
0 голосов
/ 19 сентября 2018

Я решил это, добавив зависимый файл

<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 или изменить версию.

...