Как защитить настройки проекта 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>
...