TFSBuild.proj и импорт внешних целей

[^\u0000-\u007F]+ для любых символов, которые не включены в символы ASCII.

Например:

function isNonLatinCharacters(s) {
    return /[^\u0000-\u007F]/.test(s);
}

console.log(isNonLatinCharacters("身分"));// Japanese
console.log(isNonLatinCharacters("测试"));// Chinese
console.log(isNonLatinCharacters("حمید"));// Persian
console.log(isNonLatinCharacters("테스트"));// Korean
console.log(isNonLatinCharacters("परीक्षण"));// Hindi
console.log(isNonLatinCharacters("מִבְחָן"));// Hebrew

Вот несколько отличных ссылок:

Unicode range RegExp generator

Регулярные выражения Unicode

Unicode 10.0 Коды символов

Соответствует диапазону блоков Unicode

7
задан GEOCHET 10 March 2009 в 04:02
поделиться

3 ответа

Сборка Команды имеет фазу "начальной загрузки", где все в папке Team Build Configuration (папка с TFSBuild.proj) загружается с управления версиями. Это выполняется агентом сборки перед вызовами агента сборки MSBuild.exe, говоря этому выполнить TFSBuild.proj.

Если Вы переместите свой целевой файл из-под SolutionRoot и поместите его в Вашу папку конфигурации вместе с файлом TFSBuild.proj, то Вы затем сможете импортировать его в своем файле TFSBuild.proj с помощью относительного оператора импорта т.е.

<Import Project="myTeamBuild.targets"/>

Если эти цели полагаются на какие-либо дополнительные пользовательские блоки задачи MSBuild затем, у Вас могут также быть они в той же папке как Ваш файл TFSBuild.proj, и можно сослаться на них легко использование относительного пути.

Обратите внимание, что в TFS2008, значениях по умолчанию папки конфигурации сборки к нахожению под $/TeamProject/TeamBuildTypes однако, это не должно быть там. Это может на самом деле жить в папке, которая является в Вашем решении - и может даже быть проектом в Вашем решении, выделенном Сборке Команды. Это имеет несколько преимуществ включая создание ветвления легче сборки. Поэтому мне обычно определяли местоположение моей сборки в папке как это:

$/TeamProject/main/MySolution/TeamBuild

Также обратите внимание, что по умолчанию, во время фазы начальной загрузки сборки, агент сборки только загрузит файлы, которые находятся в папке конфигурации сборки и не рекурсивно вызовут вниз ни в какие подпапки. Если Вы хотели, чтобы это включало файлы в подпапки во время фазы начальной загрузки затем, можно установить следующее свойство в appSettings tfsbuildserver.exe.config файла на машинах агента сборки (расположенный в %ProgramFiles %\Visual Studio 9.0\Common7\IDE\PrivateAssemblies)

<add key="ConfigurationFolderRecursionType" value="Full" />

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

Удачи,

Martin.

16
ответ дан 6 December 2019 в 11:54
поделиться

Если цели должны только быть выполнены, когда TFS выполняет сборку а не на Ваших локальных машинах разработки, можно поместить целевой файл в папку для самой сборки и сослаться на него с:

<Import Project="$(MSBuildProjectDirectory)\my.team.build.targets.proj" />

Однако, если Вы хотите, чтобы цели работали за всеми сборками, можно настроить его так, чтобы отдельные проекты сослались на него путем добавления чего-то как:

<Import Project="$(SolutionRoot)/libs/my.team.build/my.team.build.targets" Condition="Exists('$(SolutionRoot)/libs/my.team.build/my.team.build.targets')" />

На моем проекте мы на самом деле используем оба из них, первое позволяет нам настраивать ночные сборки, таким образом, мы можем сделать дополнительные шаги прежде и после выполнения компиляции полного решения, и второе позволяет настройку проекта проектом.

1
ответ дан 6 December 2019 в 11:54
поделиться

При создании конечного файла переопределений, чтобы импортировать и назвать его чем-то как TeamBuildOverrides.targets и поместить его в ту же папку в управлении исходным кодом, где TFSBuild.proj живет для Типа Сборки, это вытянут сначала и доступно для импорта в файл TFSBuild.proj. По умолчанию файл TFSBuild.proj добавляется к папке TeamBuildTypes в Управлении исходным кодом непосредственно под корневой папкой Вашего проекта.

используйте следующего оператора импорта в своем файле TFSBuild.proj:

<Import Project="$(MSBuildProjectDirectory)\TeamBuildOverrides.targets" />

Удостоверьтесь, что у Вас нет дублирующихся переопределений в Вашем файле TFSBuild.proj, или импортированные переопределения не будут запущены.

0
ответ дан 6 December 2019 в 11:54
поделиться