Как защитить настройки проекта VB.Net при слиянии в TFS?

В упрощенной версии моего сценария я разрабатываю приложение VB.Net, развернутое с использованием ClickOnce, с веткой Live для производственного кода и веткой Dev для работы.

Я хочу развернуть каждую из этих веток в отдельном месте (в режиме реального времени для выпуска и в dev для тестирования), но слияние одной из ветвей с другой приводит к тому, что параметр проекта "Расположение публикации" будет перезаписан в целевой ветви, что может означать, что я могу случайно опубликуйте код разработчика в прямом эфире.

Есть ли способ сделать определенные свойства проекта (в данном случае местоположение публикации) "защищенными" от слияний, чтобы каждая ветвь сохраняла свои настройки?

Изменить: Моя первая идея была, если есть какой-то файл типа "config", который может переопределить определенные параметры проекта, я мог бы скрыть этот файл, чтобы он не слился... но я не могу найти ссылку на такой файл,

Мы используем TFS для контроля версий.

1 ответ

Решение

Решено, научившись использовать MSBuild Условия.

Редактируя файл.vbproj и помещая соответствующие свойства в условную группу PropertyGroup, я могу свободно объединять ветви назад и вперед, и в зависимости от того, в каком каталоге (ветви) находится файл.vbproj, он будет использовать одно значение или Другой.

(Чтобы отредактировать XML-файл вашего проекта, щелкните правой кнопкой мыши проект в обозревателе решений> Выгрузить проект, затем щелкните правой кнопкой мыши> Изменить файл App.vbproj.)

...
<PropertyGroup Condition ="$(MSBuildThisFileFullPath.Contains(\AppDev\App\App.vbproj))">
    <AssemblyName>AppDev</AssemblyName>
    <PublishUrl>http://server/client/AppDev/</PublishUrl>
  </PropertyGroup>
  <PropertyGroup Condition ="$(MSBuildThisFileFullPath.Contains(\AppLive\App\App.vbproj))">
    <AssemblyName>App</AssemblyName>
    <PublishUrl>http://server/client/App/</PublishUrl>
  </PropertyGroup>
...
Другие вопросы по тегам