2014-12-01 4 views
0

В среде развертывания моей команды есть три конечных точки для определенных данных REST api: alpha, beta и production.Условные символы компиляции как пользовательские предпочтения

У меня есть установка условной компиляции, чтобы в конфигурации RELEASE проект определенно соединился с производством api. Однако в конфигурации DEBUG проект может подключаться к любой из трех конечных точек в соответствии с предпочтением разработчика.

В настоящее время разработчик устанавливает это предпочтение, комментируя конечные точки, которые не нужны.

Однако разработчики захотят подключиться к разным конечным точкам во время разработки, поэтому эта система не работает с git и командой. Как изменить настройку так, чтобы конечная точка api была выбрана в соответствии с предпочтением разработчика (а не передано git) только в конфигурации DEBUG?

const string api_prod = "https://api.mydomain.com/api/"; 
    const string api_beta = "https://betaapi.mydomain.com/api/"; 
    const string api_alpha = "https://alphaapi.mydomain.com/api/"; 

#if DEBUG 
    //static readonly string BaseUrl = api_prod; 
    //static readonly string BaseUrl = api_beta; 
    static readonly string BaseUrl = api_alpha; 
#else 
    static readonly string BaseUrl = api_prod; 
#endif 

ответ

0

Необходимо использовать внешние файлы конфигурации и сделать их включение зависимым от конфигурации компиляции. Взгляните на медленный гепард https://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5

Сохранение жестко закрепленного ури никогда не является хорошей идеей.

+0

Это решение предоставляет возможность использования разных настроек в зависимости от конфигурации сборки с использованием преобразований .config, которые сохраняются в репозитории и влияют на всех разработчиков. Я ищу способ, чтобы разработчики устанавливали параметр «только меня», не затрагивая других разработчиков. – bboyle1234

+0

вы можете использовать git ignore для игнорирования локальных файлов конфигурации. Http://git-scm.com/docs/gitignore Вы можете иметь 2-этапная конфигурация - файл по умолчанию (проверен на git) и файл разработчика custome, игнорируемый git. –

0

Я согласен с другим ответом в том, что было бы лучше использовать .config или аналогичный механизм для хранения URL-адресов. Тем не менее, поскольку вы указываете, что на самом деле не затрагиваете вопрос, который вы задаете. Это то, что вы должны исправить, но исправление не изменило бы основной вопрос.

Вы не совсем поняли, что здесь находится «предпочтение разработчика». Тем не менее, существует, по крайней мере, несколько различных подходов, которые вы могли бы использовать:

  1. Окружающая среда. Разработчик устанавливает его один раз, а затем программа проверяет значение, чтобы определить, какой URL использовать.
  2. Настройки приложения. Разработчик устанавливает его один раз (для удобства, предпочтительно через некоторую часть пользовательского интерфейса программы), завершается, сохраняется в файле .config с контролируемым конструктором под AppData.
  3. Некоторые пользовательские файлы конфигурации. Это может быть где угодно (например, %USERPROFILE%\Documents\MyProgam\custom.settings.config), если программа знает, где искать.

Это не исчерпывающий список. Если у вас есть что-то более конкретное, вы должны объяснить это в своем вопросе.

+0

Вы правы, Питер, есть так много вариантов. Я ищу что-то, что работает прямо из коробки, когда разработчик клонирует репозиторий, но очень быстро и просто изменить их, не покидая среду разработки, так как им может понадобиться многократно менять за один день – bboyle1234

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