Восстановление пакетов NuGet в кеш - PullRequest
2 голосов
/ 19 июня 2019

У меня есть приложение .net-core, которое работает на моей машине, но когда я развертываю его на другом, оно жалуется на отсутствующие пакеты и указывает на TheApp.deps.json.


Моя теория таковачто на моей машине приложение ищет пакеты в некотором кеше NuGet, где они, вероятно, были установлены IDE во время разработки, потому что выходной каталог приложения содержит только пару внутренних dll с, поэтому остальные nuget.org зависимости определенно отсутствуют .

Я создаю приложение с помощью

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <RuntimeIdentifier>win10-x64</RuntimeIdentifier>
  </PropertyGroup>

, а затем xcopy на другой машине.


Вопрос

Есть ли способ восстановить или установить отсутствующих пакетов в кеш вцелевой компьютер на основе файла *.deps.json?

1 Ответ

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

dotnet build (и функция F5 / Build в Visual Studio) просто создайте код, который вы предоставили через исходные файлы (например, cs, fs, vb и т. Д.).

Принимая во внимание, что dotnet publish (и функция Build> Publish в Visual Studio) выполняет полное восстановление пакета, создает исходный код и разрешает все внешние зависимости перед перемещением вывода в определенный каталог, готовый для публикации на другом компьютере.

Описание в документации по команде dotnet publish гласит:

dotnet publish компилирует приложение, считывает его зависимости, указанные в файле проекта, и публикует полученный набор файлов в каталоге. Вывод включает в себя следующие активы:

  • Код на промежуточном языке (IL) в сборке с расширением dll.
  • .deps.json Файл, который включает все зависимости проекта.
  • .runtime.config.json Файл, который определяет общую среду выполнения, которую ожидает приложение, а также другие параметры конфигурации среды выполнения (например, тип сборки мусора).
  • Зависимости приложения, которые копируются из кэша NuGet в выходную папку.

dotnet build действительно полезен только для сборки на компьютере разработчика и при использовании вместе с dotnet run для файла проекта.

...