Какой самый стандартный способ получить последнюю версию сборки для всего решения с использованием NuGet?
Моя компания переходит на использование NuGet для наших внутренних зависимостей для настольных приложений. Это отлично работает для импорта версий, но в некоторых случаях (например, во время предварительной бета-версии продукта) мы хотели бы получить последнюю версию зависимости от наших серверов сборки и сделать так, чтобы файлы csproj нашли ее без проблем.
Мы хотели бы использовать автоматическое восстановление пакетов, но это ограничено конкретной версией (как отмечено в этом вопросе). Возможно также использовать восстановление nuget с последующим обновлением nuget, но, похоже, оно не работает во всем решении так, как это делает восстановление (и у нас есть пара десятков проектов, которые должны иметь одну и ту же версию той же зависимости).
Наше лучшее решение до сих пор заключалось в том, чтобы добавить путь подсказки к бинарному файлу зависимости не версионно, т.е.
<Reference Include="Dependency">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\packages\Dependency\lib\net40\Dependency.dll</HintPath>
</Reference>
И использовать событие перед сборкой для запуска
nuget.exe install Dependency -NoCache -ExcludeVersion
Есть лучший способ сделать это? Было бы неплохо сделать это как можно более стандартным способом, чтобы мы могли получить поддержку инструментальных средств, а новым разработчикам проекта было бы легче узнать, как добавлять свои собственные зависимости через NuGet.
1 ответ
Начиная с Nuget.exe v2.8.3, нет способа выполнить восстановление и обновление в масштабе решения (по крайней мере, когда не все проекты в данной иерархии папок являются частью решения). В итоге мы использовали рабочий процесс, описанный в разделе Как обновить один пакет nuget в проекте из командной строки?,