При добавлении в решение NuGet пакеты восстанавливаются / устанавливаются в нескольких местах - PullRequest
0 голосов
/ 29 августа 2018

Я использую Visual Studio 2017, создаю .Net framework (не ядро) v4.6.1 ASP.Net MVC project , и когда я добавлял пакеты в свой единственный проект внутри моего решения, пакеты выглядели как восстановление / установка в нескольких разных местах. Я устанавливаю пакеты из нескольких каналов, некоторые из них являются внутренними для моей компании, а другие общедоступными.

Некоторые пакеты находятся в корне моего решения, а другие, похоже, попадают в% userprofile% .nuget \ packages \

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

Я не уверен, что это правильные вопросы, которые нужно задавать, но сейчас я пытаюсь ответить на них:

  1. Для VS2017, .Net framework, ASP.Net MVC, какое место установки пакета по умолчанию?
  2. Как указать, из какого источника поступает пакет для целей CI / CD?
  3. Ищет ли NuGet пакеты, уже установленные на моем компьютере?
  4. Если да, где NuGet ищет пакеты и где я могу найти его список местоположений, которые он ищет.

Спасибо!

1 Ответ

0 голосов
/ 29 августа 2018

1.Для VS2017, .Net framework, ASP.Net MVC, какое место установки пакета по умолчанию?

Это зависит от того, какой метод управления пакетами вы используете. Если вы используете package.config, местом установки пакета по умолчанию является root-решение, если вы используете PackageReference, местом установки пакета по умолчанию является %userprofile%.nuget\packages\. Именно поэтому вы добавили пакеты в один проект внутри решения, которое, по-видимому, восстанавливается / устанавливается в нескольких разных местах. Вы можете выгрузить и отредактировать свой проект, проверив файл проекта .csproj, вы найдете следующее:

  <ItemGroup>
    <PackageReference Include="xxxxx">
      <Version>x.x.x</Version>
    </PackageReference>
  </ItemGroup>

Чтобы решить эту проблему, вы можете принять совет Лекса. Если вы хотите объединить, сделать выбор и изменить файлы. Вы можете удалить те пакеты, которые используют PackageReference (или package.config), а затем изменить настройки nuget (Инструменты-> Параметры-> NuGet Диспетчер пакетов-> Общие -> Формат управления пакетами по умолчанию -> Packages.config), затем переустановите эти пакеты, убедитесь, что они используют единую форму.

2.Как указать, из какого источника поступает пакет для CI / CD?

Вы не можете делать такие вещи, и вам не нужно делать вещи. Как мы знаем, когда мы устанавливаем пакеты nuget из нескольких каналов, все пакеты загружаются на локальный хост, Visual Studio будет использовать эти пакеты на локальном, Nuget не волнует, из какого источника он поступает.

3.Настраивает ли NuGet пакеты, уже установленные на моем компьютере? 4. Если да, то где NuGet ищет пакеты и где я могу найти его список местоположений, которые он ищет.

Да, вы можете использовать командную строку nuget locals all -list, чтобы найти ее список местоположений.

Подробнее см. Управление глобальными пакетами, кешем и временными папками .

Надеюсь, это поможет.

...