Какой самый стандартный способ получить последнюю версию сборки для всего решения с использованием 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 в проекте из командной строки?,

Другие вопросы по тегам