2014-02-10 6 views
1

Я работаю над проектом непрерывной интеграции. Я создал локальный репозиторий пакетов nuget, а также установил Atlassian Bamboo (в основном msbuild) для сборки и развертывания. Версии NuGet пакета заключаются в следующем:Укажите версию пакета nuget на основе конфигурации решения

MyPackage.Library Версия 1.1.1.1

MyPackage.Library Версия 1.1.1.1 испытаний

MyPackage.Library Версия 1.1.1.1-Dev

В пакет без дополнительного имени - это производственный пакет. Bamboo строит все три и разворачивает их на сервер пакета nuget, но проблема возникает с проектами, которые я намерен использовать с ними. Я не понял способ «трансформировать» package.config, чтобы указать тестовые или dev nuget пакеты, когда bamboo строит тест и dev-версию проекта, в который я включаю пакеты. (Извините, если это запутывает).

Как я могу указать, какой пакет nuget использовать на основе какой конфигурации решения (внутри IDE)?

(EDIT:. Прямо сейчас, глядя на том, как построить в пакете NuGet Visual Studio восстановления работы я знаю, что могу указать пакет вручную, используя что-то вроде ...

String cmdnuget = "C:\\Tools\\nuget restore " + item.toString() + " -PackagesDirectory " + startingDir.toString() + "\\packages -NonInteractive -NoCache -ConfigFile C:\\Tools\\NuGet.config"; 

Но это не помогает с разработкой и отладкой IDE).

EDIT2: Игрушка с идеей использования индивидуального ретрансляции git для dev/test/prod. Это может быть путь к выбору, так как файл packages.config может содержать правильное отображение в dev/test packages. Я оставлю его открытым, если у кого-то есть лучшая идея.

+1

Что вы пытаетесь достичь? –

+0

См. Мой ответ. Я просто в значительной степени омрачал мыслительный процесс на этом. Извините. – CarComp

ответ

0

Использование индивидуального репо для каждой среды и наличие каждого из них содержит надлежащий пакет .config, содержащий соответствующие пакеты nuget для каждой среды, было простым решением этой проблемы. Я честно задал неправильный вопрос, пошел не так, а потом обнаружил, что простой подход иногда срабатывает лучше всего.

+0

Вам будет лучше в долгосрочной перспективе использовать подходящий менеджер пакетов, такой как Artifactory, который позволяет вам поддерживать только одно репо, но с дополнительными метаданными для каждого пакета («HasPassedUnitTests», «PassedComponentTests», «HasPassedIntergrationTests» и т. Д. .), а не отдельные репозитории, но отдельные репозитории для сред, безусловно, лучше, чем отдельные ветви кода или даже git-репозиции на среду! –

Смежные вопросы