Изменение расположения файлов в зависимости от промежуточной среды

#c# #asp.net #git #asp.net-web-api

#c# #asp.net #git #asp.net-web-api

Вопрос:

Я не уверен, как правильно задать этот вопрос, поэтому я попытаюсь объяснить, что я пытаюсь сделать. Я пытаюсь узнать, как правильно настроить свои проекты для непрерывной интеграции.

Текущая настройка:

  • Работа с a .Проект Net framework web api.
  • У меня есть две ветви — Разработка и мастер (производство)
  • У меня есть различные расположения файлов в моем приложении, указывающие на некоторые ресурсы на наших сетевых дисках (файлы CSV, текстовые файлы и т.д.)

Всякий раз, когда требуется новая функция, я планирую создать ее в своей ветке разработки, после тестирования и улучшения я хотел бы объединить эту функцию с моей основной (производственной) веткой. Мне нужно иметь возможность делать это, не влияя на пути к расположению файлов, что бы это ни было. Не уверен, что я просто делаю это неправильно.

Что я делаю в настоящее время:

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

 private string filelocation1 = @"\NetworkDriveFolder1data.csv";
private string filelocation2 = @"\NetworkDriveFolder2data.csv";
private string filelocation3 = @"\NetworkDriveFolder3data.csv";
  

Очевидно, что это не то, что я хочу продолжать делать в будущем, если я собираюсь использовать разные промежуточные среды, которые также должны использовать промежуточные расположения файлов, которые не касаются фактических производственных данных.

Мой вопрос:

Итак, в основном я спрашиваю, каковы различные способы, которыми я могу воспользоваться:

  1. Изменение путей расположения файлов на основе ветвей и / или на основе пакетов публикации (например, преобразования web.config?)
  2. Бонус: Если бы вы могли объяснить, как это управляется с помощью репозиториев TFS / Git, это было бы фантастически.

Традиционно мне не требовалось иметь отдельные среды для внутренних приложений, которые я создавал, но для предотвращения ошибок в будущем я хочу начать изучать надлежащие методы управления ресурсами между филиалами / средами развертывания для веб-проектов

Комментарии:

1. Иногда я устанавливаю некоторые статические переменные на основе Environment.MachineName .

2. Это могло бы сработать, но я больше думал о переменных среды и тому подобных вещах. Где есть файл ресурсов, который управляется между ветвями. Не уверен, каков традиционный способ сделать это. Я также хотел бы, чтобы другие разработчики могли работать над этим позже без необходимости изменять все эти непонятные настройки по всему приложению. @VDWWD

3. Файлы ресурсов? learn.microsoft.com/en-us/dotnet/framework/resources /…

4. @VDWWD да, как файлы ресурсов. Теперь, как вы управляете различными файлами ресурсов между вашими филиалами? Если я хочу объединить функцию из моей ветки разработки в мою производственную ветку, как я могу это сделать, не перезаписывая файлы ресурсов?

5. К сожалению, этого я не знаю. Но я полагаю, что у вас может быть 1 файл ресурсов для нескольких языковых локализаций. Возможно, то же самое касается общих ресурсов.