Nuget не восстанавливает пакеты для решения, но работает при выполнении для .csproj - PullRequest
1 голос
/ 06 июня 2019

У меня есть устаревший проект с несколько ошибочной конфигурацией для используемых пакетов nuget.

Когда я пытаюсь восстановить пакеты с помощью решения (.sln), восстановление ничего не восстанавливает.Кроме того, менеджер пакетов nuget не показывает установленных пакетов для решения.Что я пробовал:

nuget restore the_solution.sln -MSBuildPath "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin" -Verbosity detailed -ConfigFile "C:\Users\jenkins\AppData\Roaming\NuGet\NuGet.Config"

Но когда я восстанавливаю пакеты для каждого проекта (.csproj), восстановление работает нормально, и проект можно построить.Команда, которую я вызываю для восстановления проекта:

nuget restore path_to_project\packages.config -MSBuildPath "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin" -Verbosity detailed  -OutputDirectory "Packages" -ConfigFile "C:\Users\jenkins\AppData\Roaming\NuGet\NuGet.Config"

Конфигурация пакетов для каждого .csproj выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Autofac" version="4.7.0" targetFramework="net461" />
  <!- many other packages -->
</packages>

Файл .csproj выглядит следующим образом:

  <ItemGroup>
    <Reference Include="Autofac, Version=4.7.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
      <HintPath>..\packages\Autofac.4.7.0\lib\net45\Autofac.dll</HintPath>
    </Reference>
<!- many other packages -->

Стиль RestoreProject в .csproj установлен на:

  <PropertyGroup>
      <RestoreProjectStyle>PackageReference</RestoreProjectStyle>
  </PropertyGroup>

Понятия не имею, почему я не могу использовать файл .sln для восстановления nuget.Таким образом, любой намек на то, что может вызвать ошибку, высоко ценится.

1 Ответ

1 голос
/ 06 июня 2019

Вы используете пакеты в старом формате packages.config, но для восстановления задан новый формат packageReference. Попробуйте удалить это

<PropertyGroup>
      <RestoreProjectStyle>PackageReference</RestoreProjectStyle>
 </PropertyGroup>

и снова запустите восстановление на уровне решения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...