Хорошо, я хочу проверить свои зависимости в исходном элементе управления. Многие люди будут возражать против этого по разным причинам, однако это не то, что я ищу в этом вопросе.Проверка файлов .nupkg в Source Control - как восстановить на сборке?
Примите мои требования, что я хочу, чтобы мои зависимости находились в контроле источника.
Я использую пакеты NuGet, поэтому у меня есть папка packages
в корне моего решения. Каждая папка в пакетах содержит файл .nupkg
вместе с извлеченным содержимым этого пакета (двоичные файлы, xml и т. Д.).
Поскольку файл .nupkg
- это сжатое содержимое пакета, мне нет смысла проверять его вместе с распакованным содержимым. Я просто хочу проверить файлы .nupkg
и восстановить их во время процесса сборки. Здесь и лежит проблема. NuGet при восстановлении только проверок наличия файла .nupkg
, и если он обнаружит, что пакет уже установлен, он не распаковывает его.
Единственный способ найти эти файлы - запустить nuget.exe install
и указать файл packages.config
конкретного проекта и использовать опцию -OutputDirectory {solutionDir}\packages
.
например.
nuget.exe install {solutionDir}\{projectDir}\packages.config -OutputDirectory {solutionDir}\packages
Но это работает только на уровне проекта, а не на уровне решения. Поэтому мне придется создать сценарий для этого для каждого проекта в решении.
Мне бы хотелось положиться на nuget.exe restore MySolution.sln
, но он обнаруживает файлы .nupkg
и не распаковывает их.
У кого-нибудь есть более простой способ восстановить все пакеты NuGet для решения, если файлы .nupkg
присутствуют, но не распакованы?
Образы, которые вам нужны, вам нужно написать сценарий или консольное приложение, чтобы найти все файлы nupkg и извлечь их. – jrummell
@jrummell Кажется странным, что восстановление NuGet не делает этого. Я чувствую, что есть вариант, который я просто пропустил, и это сделает это. Похоже, что я хочу проверить зависимости в исходном элементе управления, что я должен добавить их дважды, сжатый в файле nupkg, а также несжатое содержимое. Кто-то еще должен был столкнуться с этой проблемой? –
Ну, нугет хочет, чтобы на самом деле предназначалось так, чтобы его использовали. Вы можете попробовать связаться с командой nuget и предложить это как запрос функции. – jrummell