Из чего на самом деле состоит пакет nuget, кроме скомпилированных библиотек?
Можно ли загрузить эти пакеты без использования диспетчера пакетов и использовать их в другом месте?
Спасибо!
Из чего на самом деле состоит пакет nuget, кроме скомпилированных библиотек?
Можно ли загрузить эти пакеты без использования диспетчера пакетов и использовать их в другом месте?
Спасибо!
Из чего на самом деле состоит пакет nuget, кроме скомпилированных библиотек?
Посмотрите здесь. По сути, это файл с расширением .nupkg
, который представляет собой не что иное, как файл .zip, содержащий структуру, описанную в предыдущей ссылке, и некоторые метаданные xml.
Можно ли загрузить эти пакеты без использования диспетчера пакетов и использовать их в другом месте?
Конечно, просто скачайте файл .nupkg
.
Вы можете загрузить их с http://packages.nuget.org/api/v1/package/‹PACKAGE_YOU_WANT›/ в браузере.
Имя пакета можно получить по адресу: http://packages.nuget.org/Packages.
Пример: пакет jQuery UI (комбинированная библиотека) находится по адресу: http://packages.nuget.org/packages/jQuery.UI.Combined Чтобы загрузить: http://packages.nuget.org/api/v1/package/jQuery.UI.Combined/
Основываясь на ответе @ Gth685, я сделал расширение Google Chrome, которое добавляет ссылки для скачивания на страницы пакетов на http://nuget.org.
https://chrome.google.com/webstore/detail/nutake/ibhhbcaipjilldjkhhblhgdedjgoecap?hl=en< /а>
Чтобы все знали, вы можете просто создать учетную запись на nuget.org. После входа в систему на левой панели инструментов появится ссылка для загрузки, которая позволит вам напрямую загрузить любой файл .nupkg.
Дополнительный комментарий: после загрузки *.zip (пример jquery) измените окончание с *.zip на *.nupkg, и тогда вы сможете установить их с помощью диспетчера пакетов в VS. Возможно, это только я должен был подумать об этом некоторое время. Если нет, надеюсь, это поможет.
Извините, это должен быть комментарий, но мне не хватает представителя.
На основе HTML-кода, сгенерированного расширением Chrome, упомянутым в этом ответе, мы можем улучшить ответ gth685f, отметив, что для загрузки не последних пакетов используется URL-адрес packages.nuget.org/api/v2/package/<PACKAGE_YOU_WANT>/<VERSION_NUMBER>
(также обратите внимание на увеличенный номер версии API).
Просто добавим, что API V2 имеет тот же формат, что и V1, для загрузки пакета с помощью браузера.
http://packages.nuget.org/api/v2/package//
Ссылка на NuGet может работать некоторое (большинство?) время, но вы также можете столкнуться с проблемами управления версиями. Например, попробуйте добавить пакет NuGet Microsoft HTTP Client Libraries в .NET. 4 и изучите полученный файл csproj
.
Во-первых, вы заметите, что некоторые сборки BCL были переопределены:
И теперь все ссылающиеся проекты также должны использовать эти переопределения (поскольку вы не можете ссылаться на несколько версий одной и той же сборки). Помимо прочего, это означает, что вы потеряете обновления для этих сборок (если также не будет обновлен пакет BCL NuGet).
Вы также заметите, что ваш csproj содержит следующую запись (она не будет работать, если вы ее удалите):
<Import Project="..\packages\Microsoft.Bcl.Build.1.0.13\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.13\tools\Microsoft.Bcl.Build.targets')" />
Я не разбираюсь в MSBuild, но предполагаю, что это может повлиять на вашу среду сборки.
Вы также можете использовать инструмент командной строки nuget.exe для загрузки файла nupkg, например:
nuget install packageId
получить последнюю версию или
nuget install packageId -Version version
чтобы получить конкретную версию.