Пакеты Nuget без менеджера пакетов Nuget?
Из чего фактически состоит пакет nuget, кроме скомпилированных библиотек?
Можно ли загрузить эти пакеты без использования менеджера пакетов и использовать их где-либо еще?
Спасибо!
9 ответов
Из чего фактически состоит пакет nuget, кроме скомпилированных библиотек?
Посмотрите здесь. В основном это файл с .nupkg
расширение, которое представляет собой не что иное, как файл.zip, содержащий структуру, описанную в предыдущей ссылке, и некоторые метаданные XML.
Можно ли загрузить эти пакеты без использования менеджера пакетов и использовать их где-либо еще?
Конечно, просто скачайте .nupkg
файл.
Вы можете загрузить их с http://packages.nuget.org/api/v1/package/
Вы можете получить название пакета по адресу: 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 тоже).
Ссылки на NuGet могут работать (в большинстве случаев?), Но вы также можете столкнуться с проблемами управления версиями. Например, попробуйте добавить пакет NuGet клиентских библиотек HTTP для Microsoft в проект.NET 4 и изучить полученный результат. csproj
файл.
Во-первых, вы заметите, что некоторые сборки BCL были переопределены:
- System.IO.dll
- System.Runtime.dll
- System.Threading.Tasks
И теперь все ссылочные проекты должны использовать эти переопределения (поскольку вы не можете ссылаться на несколько версий одной и той же сборки). Помимо прочего, это означает, что вы теряете обновления для этих сборок (если только не обновлен пакет 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, но думаю, это может повлиять на вашу среду сборки.
Просто добавьте, что API V2 имеет тот же формат, что и V1, для загрузки пакета с помощью вашего браузера.
Вы также можете использовать инструмент командной строки nuget.exe для загрузки файла nupkg, например:
nuget install packageId
чтобы получить последнюю версию, или
nuget install packageId -Version version
чтобы получить конкретную версию.