В этом разделе
Администрирование
Политики возврата после правки
Непрерывная интеграция
Настройка
release/debug ).Развертывание
Общие вопросы
Team Build выполнять сборку и развертывание приложений ASP.NET.Team Build выполнять сборку приложений на основе Microsoft® .NET 1.1.Team Build выполнять сборку проектов пакетов установки и развертывания.Проекты
Отчеты
Плановые сборки
Разработка через тестирование
Обеспечение безопасности сервера сборки
Microsoft Visual Studio® 2005 Team Foundation Server (TFS) .Build Services командного проекта.Обеспечить более высокую безопасность Team Foundation Server позволит установка сервера сборки на специальном компьютере, отдельно от уровня приложений или уровня данных. Для выполнения определенных этапов развертывания или сборки могут потребоваться дополнительные более широкие права доступа. Например, чтобы создать виртуальную папку для развертывания веб-приложения на сервере сборки, необходимо обладать правами администратора. То есть, учетная запись Microsoft Windows®, от имени которой выполняется сборка, должна обладать такими полномочиями. Если компьютер, на котором выполняется сборка, используется еще и для уровня приложений, это может представлять угрозу безопасности. Аналогично, если на сервере сборки размещается также и уровень данных, учетная запись, используемая для сборки, имеет доступ к базам данных этого уровня и может изменять их.
Примечание Из соображений безопасности нельзя добавлять учетную запись, от имени которой выполняется сборка, в группу SERVER\ Service Accounts. Члены этой группы обладают на TFS полными административными правами.
Дополнительные ресурсы
Для удаления сборок используется инструмент командной строки myproject build20070606.4
Примечание В TFS 2008 сборки можно удалять из Visual Studio. В Build Explorer выберите сборку в списке завершенных сборок, щелкните ее правой кнопкой мыши и в контекстном меню выберите Delete.
Дополнительные ресурсы
Типы сборки нельзя удалить, используя Team Explorer. Это можно сделать только из системы управления исходным кодом.
Удаление типа сборки
Source Control Explorer.TeamBuildTypes.Team Build, представляющую тип сборки, который необходимо удалить, и выберите Delete.Team Build и выберите Check In Pending Changes.Team Explorer.Team Builds и выберите Refresh.Team Builds и убедитесь, что тип сборки удален.Примечание Чтобы удалить описание сборки в TFS 2008, щелкните правой кнопкой описание сборки в узле Builds обозревателя Team Explorer и выберите Delete. Файлы tfsbuild.proj и tfsbuild.rsp необходимо удалить из системы управления исходным кодом отдельно.
Дополнительные ресурсы
Диалоговое окно Check In позволяет связать рабочие элементы с возвратом после правки. Эти же рабочие элементы будут автоматически связаны со следующей сборкой.
Связывание рабочего элемента со сборкой
Check In щелкните Work Items.Team Build внесет этот набор изменений в список наборов, связанных со сборкой, и свяжет выбранный рабочий элемент с этим набором изменений.Дополнительные ресурсы
Для повышения качества возвращаемых изменений следует использовать анализ кода в сочетании с политиками тестирования. Например, прежде чем разрешить возврат кода в систему управления версиями, при помощи готовой политики тестирования убедитесь, что он проходит определенные тесты. Также можно настроить политику анализа кода, которая обеспечит его соответствие определенным стандартам качества и правилам безопасности, производительности, переносимости, удобства обслуживания и надежности.
Включение политики анализа кода при возврате изменений
Team Explorer щелкните правой кнопкой мыши свой командный проект, выберите Team Project Settings и щелкните Source Control.Check-in Policy.Add. Затем выберите и настройте политики анализа кода и тестирования.Дополнительные ресурсы
Visual Studio Team Foundation Server " этого курса.Политики возврата изменений позволяют обеспечить связывание каждого возврата изменений с рабочим элементом. Чтобы связать рабочие элементы с возвратом изменений, разработчики используют диалоговое окно Check In. Эти рабочие элементы будут также автоматически связаны со следующей сборкой.
Включение политики связи возврата изменений с рабочими элементами
Team Explorer щелкните правой кнопкой мыши свой командный проект, выберите Team Project Settings и щелкните Source Control.Check-in Policy.Add. Выберите и настройте политику возврата Work Item.Дополнительные ресурсы
Visual Studio Team Foundation Server " этого курса.Хотя Team Foundation Server 2005 не содержит встроенного средства для непрерывной интеграции, в нем есть все необходимое для реализации собственного решения непрерывной сборки.
Создание решения непрерывной интеграции
Сконфигурируйте надстройку для непрерывной интеграции
Убедитесь, что виртуальная корневая папка веб-приложения непрерывной интеграции находится в пуле приложений TFSAppPool. Обновите файл Web.config веб-приложения непрерывной интеграции, чтобы оно работало с вашим сервером и сборкой, добавив следующий параметр:
<add key="1" value="TeamServer=http://TFSRTM:8080; TeamProjectName=Advent ureWorks;BuildType=Test Build"/>
Подпишитесь на событие CheckinEvent Чтобы подписаться на событие возврата изменений, используйте инструмент BisSubscribe.exe и следующую командную строку:
Bissubscribe /eventType CheckinEvent /address http://TFSRTM:8080/ci/no-tify.asmx /deliveryType Soap /domain http://TFSRTM:8080
Project Alerts и установите флажок уведомления Abuild completes.Подробнее - в разделе "Как настроить непрерывную интеграцию в Visual Studio Team Foundation Server " этого курса.
Примечание Пользователи TFS 2008 могут настраивать процесс непрерывной интеграции из Visual Studio. Для редактирования типа сборки необходимо щелкнуть правой кнопкой мыши описание сборки в узле Builds обозревателя Team Explorer, выбрать Edit Build Definition, щелкнуть Trigger и задать активацию сборок по событию возврата после правки.
Дополнительные ресурсы
Visual Studio Team Foundation Server " этого курса.Выполнение сборки после каждого возврата - самая простая стратегия непрерывной интеграции, которая обычно обеспечивает самую быструю реакцию. Однако, если возврат после правки производится достаточно часто, она приводит к перегрузке сервера сборок. В этом случае вам следует использовать другой подход, при котором сборка производится после определенного числа возвратов после правки или по истечении определенного времени. Чтобы решить, нужно ли вам использовать скользящую сборку, выясните следующее:
Team Build в минутах;Если длительность сборки больше среднего интервала между возвратами после правки, сборки будут выполняться непрерывно: одна сборка еще не будет завершена, когда уже произойдет следующий возврат после правки, инициирующий следующую сборку. Если возвраты после правки производятся до завершения предшествующей сборки, это негативно отразится на производительности сервера сборок и заблокирует запуск других сборок (например, сборок по расписанию). Определите промежуток времени, в течение которого возвраты после правки производятся особенно часто, и выясните, будет ли непрерывная интеграция оказывать влияние на сборки по расписанию и другие важные командные сборки.
Дополнительные ресурсы
Важно определить интервал скользящей сборки, чтобы обеспечить эффективность процесса. Если интервал между сборками превышает время, за которое выполняется одна сборка, в промежутках между скользящими сборками сервер будет доступен для сборок других типов.
Чтобы определить идеальный интервал времени скользящей сборки, разделите среднюю частоту возвратов после правки на длительность сборки. Например, если сборка занимает 10 минут, а возвраты после правки происходят в среднем раз в 5 минут, можно задать выполнение сборки после двух возвратов после правки, а для времени ожидания выбрать значение 10 минут. Это гарантирует завершение одной сборки до начала следующей. Если нагрузка на сервер сборки возросла, увеличьте эти значения.
Дополнительные ресурсы
release/debug ).Чтобы изменить номер сборки в скомпилированных файлах сборки, необходимо сгенерировать новый номер сборки и записать его в исходный файл assemblyinfo.
Чтобы номер сборки правильно отображался в интерфейсе Team Build, необходимо переопределить свойство $(BuildNumber) цели BuildNumber-Override.
$(BuildNumber) в цели BuildNumberOverride.Переопределите цель BeforeCompile для записи файла AssemblyInfo.cs или .vb.
Пример
<Target Name="BuildNumberOverrideTarget">
<Message Importance="High" Text="$(BuildNumber)" />
<ConvertTFSBuildNumberToSolutionBuildNumber
MajorAndMinorVersion="1.0"
TFSBuildNumber="$(BuildNumber)"
TFSLastBuildNumber="$(LastBuildNumber)">
<Output TaskParameter="SolutionBuildNumber"
PropertyName="SolutionBui ldNumber" />
<Output TaskParameter="TFSBuildNumber"
PropertyName="BuildNumber" />
</ConvertTFSBuildNumberToSolutionBuildNumber>
<Message Importance="High" Text="$(SolutionBuildNumber)" />
<Message Importance="High" Text="$(BuildNumber)" />
</Target>
<Target Name="BeforeCompile">
<Message Importance="High" Text="$(SolutionBuildNumber)" />
<CreateItem Include="$(SolutionRoot)\**\AssemblyInfo.cs">
<Output TaskParameter="Include" ItemName="AssemblyInfoFiles"/>
</CreateItem>
<CreateItem Include="$(SolutionRoot)\**\AssemblyInfo.vb">
<Output TaskParameter="Include" ItemName="AssemblyInfoFiles"/>
</CreateItem> <RewriteFileVersions
AssemblyInfoFiles="@(AssemblyInfoFiles)"
AssemblyVersionNumber="$(SolutionBuildNumber)"
AssemblyFileVersionNumber="$(SolutionBuildNumber)"
AssemblyInformationalVersionNumber="$(SolutionBuildNumber)" />
</Target>
В файле сопоставления рабочей области определены папки системы управления исходным кодом, извлекаемые сервером сборки. Для выполнения сборки не всегда требуется извлекать из системы все файлы. Чтобы ограничить количество включаемых папок, измените описание рабочей области или скройте ненужные файлы, чтобы они не извлекались в ходе сборки.
Например, по умолчанию новый проект сопоставляется с папкой $/Team-Project. Если все файлы исходных кодов находятся в папке $/TeamProject/ foo/bar/foobar/sources, вам следует сопоставлять только эту папку.
Сокрытие папки
WorkspaceMapping.xml.Верните файл WorkspaceMapping.xml в систему управления исходным кодом. Файл WorkspaceMapping.xml file выглядит следующим образом:
<Mappings> <InternalMapping ServerItem="$/MyTeamProject" LocalItem="c:\projects\ teamproject" Type="Map" /> <InternalMapping ServerItem="$/MyTeamProject/documentation" Type="Cloak" /> </Mappings>
Примечание Пользователи TFS 2008 могут настраивать сопоставление рабочей области прямо из Visual Studio. Для редактирования типа сборки необходимо щелкнуть правой кнопкой описание сборки в узле Builds обозревателя Team Explorer, выбрать Edit Build Definition, щелкнуть Workspace и редактировать сопоставления рабочих областей. Сопоставления рабочих областей в WorkspaceMapping.xml более не хранятся.
Дополнительные ресурсы
Team Build не поддерживает сборку решений, объединяющих несколько командных проектов. Осуществить сборку таких решений можно, настроив файл TFSBuild.proj. Тогда при сборке необходимый код других проектов будет извлекаться непосредственно из системы управления исходным кодом. Чтобы выполнить сборку проекта, имеющего зависимости от другого командного проекта, необходимо поместить исходный код или сборки этого проекта в рабочую область на вашем сервере сборки, отредактировав файл TFSBuild.proj. Добавьте в него сборку или ссылку на решение и переопределите событие BeforeGet для извлечения сборок или исходных файлов из всех командных проектов, от которых зависит ваш проект.
Сборка проекта, зависящего от другого командного проекта
Source Control Explorer извлеките для редактирования сценарий TFSBuild.proj.В разделе PropertyGroup (группа свойств) добавьте следующие параметры:
<!-- должны находиться под PropertyGroup --> <TfCommand>$(TeamBuildRefPath)\..\tf.exe</TfCommand> <SkipInitializeWorkspace>true</SkipInitializeWorkspace>
Параметр SkipInitializeWorkSpace позволяет пропустить вызов задач по умолчанию для удаления и воссоздания рабочей области на компьютере сборки. Это новое свойство используется в специальной цели BeforeGet (см. ниже).
Добавьте следующие параметры в элементы ItemGroup, отвечающие за сопоставление командных проектов и решений. Убедитесь в правильности задания локальных путей для компьютера сборки. Одна локальная папка не может использоваться в нескольких сопоставлениях. Это приведет к возникновению исключения MappingConflictException при выполнении задачи CreateWorkspace.
<ItemGroup>
<!-- для каждого используемого решения добавляется по одной записи -->
<SolutionToBuild Include="$(SolutionRoot)\DependentApp\DependentApp.sln"
/>
<SolutionToBuild Include="$(SolutionRoot)\YourApp\YourApp.sln" />
</ItemGroup>
<ItemGroup>
<!-- для каждого используемого Team Project добавляется по одной записи -->
<Map Include="$/YourApp/YourApp">
<LocalPath>$(SolutionRoot)\YourApp</LocalPath>
</Map>
<Map Include="$/DependentApp/DependentApp">
<LocalPath>$(SolutionRoot)\DependentApp</LocalPath>
</Map>
</ItemGroup>
BeforeGet, чтобы рабочие области извлекались для каждого командного проекта:<Target Name="BeforeGet">
<DeleteWorkspaceTask
TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
Name="$(WorkspaceName)" />
<Exec WorkingDirectory="$(SolutionRoot)"
Command=""$(TfCommand)" workspace /new $(WorkSpaceName) /
server:$(TeamFoundationServerUrl)"/> <Exec
WorkingDirectory="$(SolutionRoot)"
Command=""$(TfCommand)" workfold /unmap /workspace:$(WorkS paceName)
"$(SolutionRoot)""/>
<Exec WorkingDirectory="$(SolutionRoot)"
Command=""$(TfCommand)" workfold /map /workspace:$(WorkSp aceName) /server:$(TeamFoundationServerUrl) "
%(Map.Identity)" "%(Map.LocalPath)""/>
</Target>
Примечание В TFS 2008 для типов сборки нет ограничений на извлечение файлов из других командных проектов. Можно просто редактировать сопоставления рабочих областей при помощи диалогового окна Build Definition Editor и сопоставлять необходимые файлы.
Дополнительные ресурсы
Чтобы изменить конфигурацию существующего сценария сборки, необходимо редактировать тег <ConfigurationToBuild> в файле TFSBuild.proj.
Изменение конфигурации сборки
Source Control Explorer.TeamBuildTypes.TFSBuild.proj из системы управления версиями. Возможно, сначала понадобится выполнить для папки операцию Get Latest Version.TFSBuild.Proj, в окне Source Control Explorer щелкните его дважды.<ConfigurationToBuild> .TFSBuild.proj и верните его в систему управления версиями .Дополнительные ресурсы
Сервер сборки устанавливается отдельно от TFS. Поскольку сервер сборки должен компилировать код, выполнять тесты и анализ кода, на нем должны быть установлены все инструменты, необходимые для этих действий.
Установка сервера сборки
Visual Studio.Team Suite.Team Build, но не нужны различные варианты тестирования, установите Visual Studio Team Developer Edition.Visual Studio Team Test Edition.DVD -диске Team Foundation Server откройте папку uild.Учетная запись, используемая для запуска сервера сборки, должна обладать следующими свойствами:
Log On Locally на компьютерах TFS ;TFS ;Microsoft Active Directory®.Дополнительные ресурсы
Выполнение на одном сервере несколько сценариев сборки может привести к чрезмерной нагрузке на сервер. В случае возникновения такой проблемы вам следует рассмотреть возможность выполнения разных типов сборки на разных серверах.
Процесс сборки может выполняться довольно длительное время, особенно если это сборка большого проекта. При использовании непрерывной интеграции или частых плановых сборок существует вероятность того, что сервер сборки не сможет справиться с их потоком. Для распределения нагрузки рекомендуется установить несколько серверов сборки. Для равномерного распределения нагрузки назначьте каждому из серверов разные типы сборки.
Team Build выполнять сборку и развертывание приложений ASP.NETTeam Build выполнять сборку приложений на основе Microsoft® .NET 1.1.Team Build выполнять сборку проектов пакетов установки и развертывания.Если требуется выполнить сборку решения, содержащего только веб-приложения ASP.NET, важно правильно выбрать конфигурацию. Создавая тип сборки, убедитесь, что выбрана платформа .NET и конфигурация Debug:
Сборка решения, содержащего только проекты веб-приложений ASP.NET
New Team Build Type Creation Wizard.ASP.NETPlatform выберите платформу .NETFinish.При сборке решения, включающего как веб-приложения ASP.NET, так и другие .NET -проекты, необходимо выбрать тип платформы Mixed.
Сборка решения, содержащего веб-приложения ASP.NET и другие .NET -проекты
New Team Build Type Creation Wizard.ASP.NET и другие проекты.Platform выберите вариант Mixed.Finish.Местом накопления скомпилированных двоичных файлов будет папка {Тип сборки}\{Название конфигурации}\{Платформа}\_PublishedWebsites.
Team Build не поддерживает развертывание веб-приложений на Internet Information Services (IIS) . Существует два способа включить развертывание приложения на IIS в сценарий сборки: добавить в тип сборки специальный этап или использовать проект развертывания веб-приложений Web Deployment Project.
Если работа над командным проектом только начинается, рассмотрите вариант Web Deployment Project, чтобы выяснить, возможно ли его использование в вашей разработке. Если веб-сайт уже существует, использование проекта развертывания веб-приложений может нарушить процесс разработки. В этом случае необходимо рассмотреть использование специального этапа после сборки MSBuild. В обоих случаях учетная запись службы, от имени которой выполняется сборка, должна входить в локальную группу администраторов, что позволит ей создать виртуальную папку в IIS.
Послесборочный этап для развертывания веб-приложения
zip -архива извлеките файл Microsoft.Sdc.Tasks.dll и поместите его в ту же в папку, что и тип сборки.DLL в систему управления исходным кодом и возвратите ее.TFSBuild.proj, чтобы файлы при сборке копировались в соответствующую папку, а затем сделайте эту папку виртуальной:<PropertyGroup> , определяющий расположение скомпилированных веб-приложений:<PropertyGroup> <WebBinariesLocation>$(SolutionRoot)\..\Binaries\.NET\Release\_ PublishedWebSites\MyWebSite </WebBinariesLocation> </PropertyGroup>
UsingTask со ссылками на задачи CreateVirtualDirectory и DeleteVirtualDirectory:<UsingTask TaskName="Microsoft.Sdc.Tasks.Web.WebSite. CreateVirtualDirectory" AssemblyFile="Microsoft.Sdc.Tasks.dll" /> <UsingTask TaskName="Microsoft.Sdc.Tasks.Web.WebSite. CreateVirtualDirectory" AssemblyFile="Microsoft.Sdc.Tasks.dll" />
AfterCompile для создания виртуальной папки и копирования файлов в нее:<Target Name="AfterCompile"> <MakeDir Directories="C:\Deploy\MyWebsite" /> <CreateVirtualDirectory VirtualDirectoryName="MyWebSite" Path="C:\ Deploy\Website" /> <DeleteVirtualDirectory VirtualDirectoryName="MyWebSite" /> <Exec Command="xcopy /y /e $(WebBinariesLocation) C:\Deploy\ MyWebsite"/> </Target>
Теперь при выполнении сборки будет создаваться веб-приложение и виртуальная папка, в которую это веб-приложение будет копироваться.
Проект развертывания веб-приложения
Visual Studio 2005 Web Deployment Projects.Visual Studio 2005 Web Deployment Projects.Build выберите команду Add Web Deployment Project.Solution Explorer правой кнопкой мыши щелкните Web Deployment Project и выберите Property Pages.Configuration (Debug или Release) , соответствующее тому, какую сборку должен выполнять Team Build.Deployment установите флажок Create an IIS virtual directory for the output folder и задайте имя виртуальной папки.OK.При выполнении сборки, содержащей это решение, будет создано веб-приложение и виртуальная папка в папке, где выполняется сборка веб-приложения - {Папка сборки}\{Имя командного проекта}\{Тип сборки}\Binaries\ {Название конфигурации}\{Платформа}\_PublishedWebSite\{Имя проекта развертывания веб-приложения.
Дополнительные ресурсы
MSBuild не поддерживает .NET 1.1, поэтому такой поддержки нет и в Team Build. Компания Microsoft опубликовала на сайте CodePlex проект под названием MSBuild Extras (MSBee) , который поддерживает сборку приложений на основе .NET 1.1.
Чтобы выполнять сборку приложений .NET 1.1, необходимо обновить файл проекта до .NET 2.0. Также придется отредактировать файл типа сценария сборки, чтобы при сборке использовались инструменты .NET 1.1, а не инструменты .NET 2.0.
Сборка приложений .NET 1.1 с использованием Team Build 2005
.NET 1.1 до .NET 2.0. Для этого откройте решение в Visual Studio 2005 и запустите Conversion Wizard или выполните команду devenv [имя_проекта] /upgrade..NET 1.1 Software Develop ment Kit (SDK) ..NET 1.1.BuildingFx11inTB.targets в папку, содержащую тип сборки, и верните файл в систему управления исходным кодом.TFSBuild.proj:BuildingFx11inTB.targets:<Import Project="$(MSBuildProjectDirectory)\BuildingFx11inTB.targets" />
CSharp:<PropertyGroup> <AdditionalPropertiesForBuildTarget> CustomAfterMicrosoftCommonTargets=$(ProgramFiles)\MSBuild\MSBee\ MSBuildExtras.Fx1_1.CSharp.targets </AdditionalPropertiesForBuildTarget> </PropertyGroup>
TFSBuild.proj в систему управления исходным кодом.Примечание В TFS 2008 в файл TFSBuild.proj достаточно добавить в элемент SolutionToBuild следующий элемент Properties.
<SolutionToBuild Include="$(BuildProjectFolderPath)/path/MySolution. sln"> <Properties> CustomAfterMicrosoftCommonTargets=$(ProgramFiles)\MSBuild\MSBee\ MSBuildExtras.Fx1_1.CSharp.targets </Properties> </SolutionToBuild>
Дополнительные ресурсы
По умолчанию Team Build не поддерживает проекты пакетов установки приложений. Для компиляции такого проекта и копирования двоичных файлов в место накопления результатов сборки используйте специальный послесборочный этап.
Протестируйте сборку
Убедитесь в работоспособности типа сборки, который намерены использовать для создания пакета установки. Если он не работает, устраните ошибку, прежде чем двигаться дальше.
Совет В большинство сборок включается как сборка пакета установки, так и сборка основного проекта. Если вы создаете новый сценарий сборки исключительно для проекта установки, это необходимо сделать перед переходом к следующему шагу.
Задайте выполнение сборки пакета установки
Solution Explorer щелкните правой кнопкой мыши проект установки, для которого будет создаваться сценарий сборки.Properties.Configuration Manager.Debug, Release, обе).Build для проекта пакета установки.Сделайте все пути сборки в файле проекта относительными
.vdproj в любом другом редакторе (не в Visual Studio )..vdproj из системы управления исходным кодом для редактирования.SccLocalPath (локальный путь в системе управления исходным кодом), SccAuxPath (вспомогательный путь в системе управления исходным кодом), OutputFileName (имя выходного файла) и SourcePath (путь к исходному файлу).(\\) или вообще не имеют никаких дополнительных символов.Все абсолютные пути (если таковые обнаружатся) замените относительными (не меняя константы, которые будут раскрыты программой установки позже), например:
"OutputFileName" = "8:c:\\temp\\SetupProject.msi"замените на
"OutputFileName" = "8:debug\\SetupProject.msi"
Совет Относительные пути разрешаются относительно папки проекта.
Совет При создании путей нужно использовать двойную косую черту ('\\') , потому что вместо нее потом подставляется одиночная косая черта ('\ ) .
Добавьте в сценарий сборки задачу, выполняющуюся после компиляции
TFSBuild.proj находится в системе управления исходным кодом в папке командного проекта в подпапке папки TeamBuildTypes.Get Latest Version.В окне Source Control Explorer щелкните дважды файл TFSBuild.Proj, чтобы открыть его для редактирования.
Примечание Просмотр типа сборки из Team Explorer ничего не даст, поскольку копия файла будет открыта только для чтения.
</ItemGroup> и последним тегом </Project> :<Target Name="AfterCompile">
<Exec Command=""C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv"
"C:\Documents and Settings\dar-ren\My Documents\Visual Studio 2005\Projects\HelloWorldTest\
HelloWorldTestInstaller\HelloWorldTestInstaller.vdproj" /Build "Debug""/>
<Copy SourceFiles="C:\Documents and Settings\darren\My Documents\ Visual Studio 2005
\Projects\HelloWorldTest\HelloWorldTestInstaller\ Debug\HelloWorldTestInstaller.msi"
DestinationFolder="$(OutDir)" />
<Copy SourceFiles="C:\Documents and Settings\darren\My Documents\ Visual Studio 2005
\Projects\HelloWorldTest\HelloWorldTestInstaller\ Debug\setup.exe"
DestinationFolder="$(OutDir)" /> </Target>
При необходимости исправьте пути во вставленном фрагменте кода в соответствии со своим сервером сборки.
Совет Проверьте путь из тега <exec command> в командной строке, заменив " кавычками, например:
"C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv" "C:\Documents and Settings\darren\My Documents\Visual Studio 2005 \Projects\HelloWorldTest\HelloWorldTestInstaller\ HelloWorldTestInstaller.vdproj" /Build "Debug"
Совет Используйте командную строку и для проверки путей Source-Files.
Протестируйте изменения, внесенные в сборку
Team Explorer правой кнопкой мыши щелкните тип сборки и выберите команду Build Team Project.tfsservice есть право копировать файлы из папки двоичных файлов в папку сборки. Папка двоичных файлов - это папка, в которую помещается файл msi после сборки. Папка сборки определена в файле в теге <BuildDirectoryPath> .tfsserver обладает правом чтения файла .vdproj и исходных файлов проекта, а также приложения, с которым связан проект установки. Кроме того, учетной записи tfsserver необходимо право записи двоичных файлов в выходную папку, например, Debug или Release.exec command конфигурация сборки существует. Например, вместо конфигурации "Debug" в проекте может иметься конфигурация "Debug|Any CPU" . Это можно проверить, посмотрев свойства решения в Solution Explorer.<Exec Command=""C:\Program Files\Microsoft Visual Studio 8\Common7\ IDE\devenv" "C:\Documents and Settings\darren\My Documents\ Visual Studio 2005\Projects\HelloWorldTest\HelloWorldTestInstaller\ HelloWorldTestInstaller.vdproj" /Build "Debug" > c:\temp\ output.txt"/>
Дополнительные ресурсы
Новый сценарий сборки создается из папки Team Builds в Team Explorer.
Создание сценария сборки
Team Explorer.Team Builds.New Team Build Type.Next.Release или Debug ) и щелкните Next.TFSRTM.c:uilds.\\TFSRTM\ NightlyBuilds, и щелкните Next.Run tests, выберите список тестов, которые хотите связать со сборкой, и щелкните Next.Finish, чтобы создать новый тип сборки.Чтобы создать несколько типов сборки, например, Release для заказчиков и Debug для группы тестирования, необходимо использовать разные сценарии для каждого типа сборки. Каждый из них создается так, как описано в предыдущем разделе.
Чтобы выполнить сборку проекта, имеющего зависимости от другого командного проекта, необходимо перенести исходный код или сборки из этого проекта в рабочую область на сервере сборки. Для этого понадобится отредактировать файл TFSBuild.proj, добавив в него сборку или ссылку на решение, и переопределить событие BeforeGet для получения всех необходимых сборок или исходных файлов из используемых командных проектов.
Сборка проекта, использующего сборки из другого командного проекта
Source Control Explorer извлеките для редактирования сценарий TFS-Build.proj.Под разделом PropertyGroup добавьте следующие параметры:
<!-- добавить под PropertyGroup --> <TfCommand>$(TeamBuildRefPath)\..\tf.exe</TfCommand> <SkipInitializeWorkspace>true</SkipInitializeWorkspace>
Параметр SkipInitializeWorkSpace позволяет пропустить вызов задач по умолчанию для удаления и воссоздания рабочей области на компьютере сборки. Это новое свойство используется в специальной цели BeforeGet (см. ниже).
ItemGroup, отвечающие за сопоставление как командных проектов, так и решений. Убедитесь в правильности задания локальных путей для компьютера сборки. Одна локальная папка не может использоваться в нескольких сопоставлениях. Это приведет к исключению MappingConflictException при выполнении задачи CreateWorkspace.<ItemGroup>
<!-- добавляется по одной записи для каждого используемого решения -->
<SolutionToBuild Include="$(SolutionRoot)\DependentApp\DependentApp.
sln" />
<SolutionToBuild Include="$(SolutionRoot)\YourApp\YourApp.sln" />
</ItemGroup>
<ItemGroup>
<!-- добавляется по одной записи для каждого используемого проекта -->
<Map Include="$/YourApp/YourApp">
<LocalPath>$(SolutionRoot)\YourApp</LocalPath> </Map> <Map Include="$/DependentApp/DependentApp">
<LocalPath>$(SolutionRoot)\DependentApp</LocalPath>
</Map>
</ItemGroup>
BeforeGet, чтобы рабочие области извлекались для каждого командного проекта:<Target Name="BeforeGet"> <DeleteWorkspaceTask
TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
Name="$(WorkspaceName)" /> <Exec
WorkingDirectory="$(SolutionRoot)"
Command=""$(TfCommand)" workspace /new $(WorkSpaceName) /
server:$(TeamFoundationServerUrl)"/> <Exec
WorkingDirectory="$(SolutionRoot)"
Command=""$(TfCommand)" workfold /unmap /workspace:$(WorkS
paceName) "$(SolutionRoot)""/> <Exec
WorkingDirectory="$(SolutionRoot)"
Command=""$(TfCommand)" workfold /map /workspace:$(WorkSp aceName) /
server:$(TeamFoundationServerUrl) "%(Map.Identity)" "%(Map.LocalPath)""/>
</Target>
Примечание В TFS 2008 нет ограничений для сценариев сборки на извлечение файлов из других командных проектов. Можно просто редактировать сопоставления рабочих областей при помощи диалогового окна Build Definition Editor и сопоставлять необходимые файлы.
Дополнительные ресурсы
Чтобы узнавать о завершении сборки по электронной почте, создайте уведомление проекта.
Создание уведомления о выполнении сборки
Team Explorer.Project Alerts.Дополнительные ресурсы
Чтобы получать сообщения по электронной почте только при сбое сборки, создайте уведомление проекта с фильтрованием.
Создание уведомления о сбое сборки
BisSubscribe.exe подпишитесь на событие BuildCompletionEvent и задайте фильтр, определяющий, что вы хотите получать уведомления по электронной почте только при сбое сборки. Используйте для этого следующий синтаксис:bissubscribe /eventType BuildCompletionEvent /address myemail@domain.com /deliveryType EmailPlaintext /server tfsserver1 /filter " TeamProject = 'MyTeamProject' AND CompletionStatus='Failed'"
Дополнительные ресурсы
Запустить тип сборки можно из папки Team Builds в Team Explorer. Ручной запуск сборки
Team Explorer.Team Builds.Build Team Project.Состояние сборки можно проверить в окне Builds, которое доступно в Team Explorer.
Проверка успешного выполнения сборки
Team Explorer.Team Builds.Результат сборки можно просмотреть в окне Builds, которое доступно в Team Explorer.
Просмотр результата сборки
Team Explorer.Team Builds.Team Build, соответствующий номеру сборки, для которой хотите увидеть результат.Build name.Log.Чтобы задать другой сервер сборки для существующего типа сборки, измените тег <BuildMachine> в файле TFSBuild.proj.
Изменение сервера сборки для существующего типа сборки
Source Control Explorer.Source Control Explorer разверните папку своего командного проекта.TeamBuildTypes.TFSBuild.proj из системы управления исходным кодом. Возможно, сначала придется выполнить операцию Get Latest Version.TFSBuild.Proj, щелкните его дважды в Source Control Explorer.<BuildMachine> , подставив в него указание на другой сервер.TFSBuild.proj и верните его в систему управления исходным кодом.Примечание В TFS 2008 тег <BuildMachine> уже не используется. Вместо этого в описании сборки задается агент сборки. Редактирование агентов сборки выполняется при помощи параметра Manage Build Agents. Чтобы найти его, щелкните правой кнопкой узел Builds в Team Explorer Build. Агент сборки задается при запуске новой сборки.
Дополнительные ресурсы
Чтобы изменить место накопления результатов сборки, отредактируйте тег <DropLocation> в файле TFSBuild.proj.
Изменение места накопления для существующего типа сборки
Source Control Explorer.TeamBuildTypes.TFSBuild.proj из системы управления исходным кодом. Возможно, сначала придется выполнить операцию Get Latest Version.TFSBuild.Proj, щелкните его дважды в Source Control Explorer.<DropLocation> , чтобы он указывал на новое положение.TFSBuild.proj и верните его в систему управления исходным кодом.Примечание В TFS 2008 тег <DropLocation> не используется. Чтобы задать место накопления результатов сборки, щелкните правой кнопкой мыши описание сборки в узле Builds дерева Team Explorer, выберите команду Edit Build Definition, щелкните Build Defaults и задайте место публикации.
Дополнительные ресурсы
Увидеть, какие наборы изменений связаны со сборкой, можно из окна Builds, которое доступно в Team Explorer.
Просмотр наборов изменений, связанных со сборкой
Team Explorer.Team Builds.Team Build, соответствующий номеру сборки, для которой вы хотите увидеть наборы изменений.Associated changesets.ID.Качество сборки можно изменить из окна Builds, которое доступно в Team Explorer.
Изменение показателя качества сборки
Team Explorer.Team Builds.Build Quality выберите сборку, для которой хотите задать качество сборки, и задайте значение качества сборки.Если вы работаете в небольшой группе, вам стоит использовать стратегию единого решения Visual Studio, содержащего все проекты. Эта структура упрощает разработку, поскольку при открытии решения сразу доступен весь код. При такой стратегии также легко устанавливать ссылки, поскольку все они связывают проекты одного решения. Вы вольны использовать и файловые ссылки, чтобы ссылаться на сборки сторонних производителей, например, приобретенные компоненты, которые находятся вне вашего решения.
Дополнительные ресурсы
Если вы работаете в большой группе, вам выгодно использовать несколько решений, каждое из которых представляет определенную подсистему приложения. Разработчики будут применять эти решения для работы над мелкими частями системы без необходимости загрузки всего кода по всем проектам. Проектируйте структуру решения так, чтобы любые проекты, связанные зависимостями, группировались вместе. Это позволит вам использовать ссылки на проекты вместо ссылок на файлы. Подумайте о создании главного решения, которое содержало бы все проекты, для сборки всего приложения.
Работая с несколькими решениями, используйте во всех проектах плоскую структуру файлов. Типичный пример - приложение, включающее проект Microsoft Windows® Forms, проект ASP.NET, службу Windows и ряд библиотек классов, которые совместно используются некоторыми или всеми перечисленными проектами.
Для всех проектов может использоваться следующая плоская структура:
/Source/WinFormsProject/WebProject/WindowsServiceProject/ClassLibrary1/ClassLibrary2/ClassLibrary3Web.slnService.slnAll.slnПлоская структура обеспечивает большую гибкость и возможность использовать решения для создания разных представлений проектов. Физическую структуру папок решения менять очень трудно, особенно если используется библиотека классов из другого решения.
Примечание Если вы осуществляете сборку при помощи Team Build (на основе MSBuild ), можете создавать решения, не включающие в себя все связанные проекты. При условии что сначала вы сбираете решение целиком, генерируя двоичный файл для каждого решения, MSBuild сможет проследовать по ссылкам в проекты вне решения и произвести успешную сборку. Решения, создаваемые таким образом, не будут собираться при помощи команды сборки из Visual Studio. Они будут работать только с Team Build и MSBuild.
Дополнительные ресурсы
Работая над очень большим решением, для которого требуется несколько десятков проектов, вы рискуете столкнуться с ограничениями масштабируемости. Если это случилось, разбейте приложение на несколько решений, но не создавайте главное решение для всего приложения. Все ссылки внутри каждого решения будут ссылками на проекты. Ссылки на проекты вне решения (например, на библиотеки сторонних разработчиков в другом решении) будут ссылками на файлы. Это означает, что главного решения быть не может. Вместо этого нужно использовать сценарий, в котором учтен порядок сборки решений. Одной из задач обслуживания структуры из нескольких решений является контроль за тем, чтобы разработчики по невнимательности не создали кольцевых ссылок между решениями. Такая структура требует создания сложного сценария сборки и явного сопоставления отношений зависимости. Собрать приложение во всей его полноте из Visual Studio невозможно. Вместо этого вам придется использовать TFS Team Build или непосредственно MSBuild.
Дополнительные ресурсы
Информацию о качестве сборки можно найти в окне Builds, которое доступно из Team Explorer.
Просмотр информации о качестве сборки
Team Explorer.Team Builds.Если используется шаблон процесса MSF CMMI, информация о качестве сборки, а также дополнительные данные по результатам тестов, покрытию кода тестами и степени изменения кода, записываются в отчет Builds.
Просмотр информации о качестве сборки в MSF CMMI
Team Explorer разверните узел нужного командного проекта.Reports и выберите команду Show Report Site.Builds.Возвращенные изменения, связанные с каждой сборкой, можно увидеть в окне Builds, которое доступно из Team Explorer.
Просмотр возвратов изменений, связанных со сборкой
Team Explorer.Team Builds.Team Build, для которого хотите увидеть возвраты изменений.Associated changesets, чтобы просмотреть возвраты изменений, связанные со сборкой.ID.Рабочие элементы и ошибки, которые были закрыты в конкретной сборке, можно просматривать в окне Builds, доступном в Team Explorer.
Просмотр закрытых рабочих элементов, связанных со сборкой
Team Explorer.Team Builds.Team Build, соответствующий номеру сборки, для которой вы хотите просмотреть рабочие элементы.Associated work items.Если используется шаблон процесса MSF CMMI, открытые, решенные и закрытые рабочие элементы за указанный период времени можно просмотреть в отчете Open Issues and Blocked Work Items . Однако в отчете информация отсортирована по датам, а не по сборкам, поэтому вам необходимо будет сгруппировать результаты по сборкам вручную.
Просмотр открытых рабочих элементов или ошибок для конкретной сборки
Team Explorer разверните узел своего командного проекта.Reports и выберите команду Show Report Site.Open Issues and Blocked Work Items Trend .Отслеживать прогресс проекта и темпы выполнения рабочих элементов от сборки к сборке можно с помощью отчета . Этот отчет доступен как в шаблоне проекта MSF CMMI, так и в шаблоне MSF Agile.
Контроль за темпом выполнения проекта
Team Explorer разверните узел своего командного проекта.Reports и выберите команду Show Report Site.Velocity .Отслеживать количество пройденных и непройденных сценариев тестирования за указанный период времени позволяет отчет Quality Indicators. Информация в нем отсортирована по дате, а не по сборке, т.е. вам необходимо будет сгруппировать результаты по сборкам вручную. Этот отчет доступен как в MSF CMMI, так и в MSF Agile.
Просмотр пройденных и непройденных тестов для сборки
Team Explorer разверните узел своего командного проекта.Reports и затем щелкните Show Report Site.Quality Indicators.Если вы используете шаблон процесса MSF CMMI, результаты тестов верификации сборки ( build verification testing, BVT ) можно найти в отчете Builds.
Просмотр состояния сборки
Team Explorer разверните узел своего командного проекта.Reports и выберите команду Show Report Site.Builds.Функция Team Build в TFS не поддерживает создание плановых сборок из пользовательского интерфейса. Поэтому для запуска сборок в заданное время используется Windows и утилита командной строки TFSBuild.
Создание плановой сборки
TFSBuild:TfsBuild start <<TeamFoundationServer>> <<TeamProject>> <<BuildTypeName>>
Подробнее - в разделе "Как настроить плановую сборку в Visual Studio Team Foundation Server " этого курса.
Примечание Пользователи TFS 2008 могут планировать сборки прямо в Visual Studio. Для редактирования описания типа сценария сборки необходимо щелкнуть правой кнопкой описание сборки в узле Builds дерева Team Explorer, выбрать Edit Build Definition, щелкнуть Trigger и задать расписание сборки.
Дополнительные ресурсы
Выбор частоты выполнения сборок - одно из самых важных решений при создании плановой сборки. Если проект претерпевает существенные изменения в течение часа, и при этом непрерывная интеграция не используется, можно выполнять сборки каждый час. Это позволит разработчикам оперативно получить информацию о качестве кода, в частности, от тестировщиков и членов других групп.
Если проект претерпевает существенные изменения на протяжении дня, можно использовать ежедневную плановую сборку. Группы тестирования и разработки будут каждое утро получать готовую к тестированию сборку, которая включает в себя все изменения, внесенные за предыдущий рабочий день.
В больших сложных проектах процесс сборки может занимать несколько дней. В этом случае следует остановиться на еженедельных сборках. Готовую к тестированию сборку, включающую все внесенные на предыдущей неделе изменения, группа разработки будет получать в начале каждой недели.
Дополнительные ресурсы
Visual Studio Team Foundation Server " этого курса.Простейший приемочный тест поможет вам убедиться в собственном умении создавать модульные тесты и связывать их с процессом сборки.
Чтобы создать список тестов, связанных со сборкой, необходимо установить Visual Studio Test Edition или Visual Studio Team Suite. Автоматизированные тесты можно выполнять на сервере сборки, только если на нем установлены Visual Studio Developer Edition, Visual Studio Test Edition или Visual Studio Team Suite.
Создание приемочного теста
Test выберите команду New Test.Unit Test и OK.Create.Test выберите команду Create New Test List.Create New Test List задайте имя списка тестов и щелкните OK.Test Manager щелкните узел All Loaded Tests .VSMDI -файл проекта модульного теста.Созданный список тестов будет доступен в новой сборке и сможет выполняться автоматически как часть процесса сборки.
Дополнительные ресурсы
Автоматизированное тестирование применяется для получения информации о качестве кода после каждой сборки. Для выполнения автоматизированных тестов необходимо, чтобы на сервере сборки были установлены Visual Studio Developer Edition и Visual Studio Test Edition или полностью Team Suite. Версия Visual Studio Developer Edition необходима для выполнения сборки, а без Test Edition невозможно будет настроить выполняемые тесты и списки тестов.
Выполнение автоматизированного тестирования в процессе сборки
Test выберите команду Create New Test List.Test Manager сгруппируйте тесты в новый список, перетаскивая их из раздела Test View в Test List.Дополнительные ресурсы
Включить анализ кода в сценарий сборки можно как при создании нового типа сборки, установив соответствующий флажок в New Team Build Type Creation Wizard, так и позже, изменяя файл TFSBuild.proj.
Включение анализа кода в файле TFSBuild.proj
lt;RunCodeAnalysis> значение Always.<RunCodeAnalysis> значение Default.Дополнительные ресурсы
Team Build " этого курса.Если в сборке происходит сбой из-за ошибок компиляции, создается рабочий элемент для отслеживания ошибки, а сама сборка помечается как неудачная. Однако, если сборка не проходит автоматизированный тест, это не считается сбоем. Непройденный тест преобразуется в предупреждение, и сборка продолжается.
Можно завершать сборку сбоем и при непрохождении автоматизированного теста, попутно автоматически формируя рабочий элемент для отслеживания непройденного теста.
Завершение сборки сбоем при невыполнении теста
Microsoft.TeamFoundation.Build.targets из папки Program Files\MSBuild\Microsoft\VisualStudio\v8.0\TeamBuild.TFSBuild.proj для типа сборки, который должен завершаться сбоем в случае непрохождения теста (тестов).RunTestWithConfiguration из Microsoft.TeamFounda-tion.Build.targets в самый конец файла TFSBuild.proj, непосредственно перед закрывающим тегом </Project> .ContinueOnError с true на false.Примечание Вам доступны две задачи тестирования. Измените задачу серверной сборки, чтобы изменить поведение сборок только на сервере сборки. Задача клиентской сборки используется при выполнении сборки на компьютере разработчика.
Если вы хотите, чтобы сборка всегда считалась неудачной при завершении теста с ошибкой, измените непосредственно Microsoft.TeamFoundation. Build.targets. Это повлияет на поведение всех типов командной сборки.
Рекомендованное выше решение легко реализуется, но нет гарантии, что оно будет работать в будущих версиях .
Дополнительные ресурсы
В этом разделе
Политики возврата после правки
Управление проектом
Microsoft Project.Microsoft Excel.Team Foundation Server.Сочетая политики анализа и тестирования, вы обеспечите соблюдение стандартов качества кода. Например, встроенная в VSTS политика тестирования обеспечит обязательное проведение специальных тестов перед возвратом кода в систему управления исходным кодом Microsoft® Visual Studio® 2005 Team Foundation Server (TFS) . Также можно настроить политику анализа кода, обеспечив с ее помощью соответствие кода определенным нормам безопасности, производительности, переносимости,
Применяя этот тип политики возврата после правки в дополнение к политикам, направленным на укрепление стандартов и нормативов программирования, вы гарантируете соответствие кода специфическим критериям качества.
Применение политики анализа при возврате после правки
Team Explorer щелкните правой кнопкой нужный командный проект, раскройте подменю Team Project Settings и выберите команду Source Control.Check-in Policy.Add, а затем выберите и настройте соответствующую политику.Дополнительные ресурсы
Visual Studio Team Foundation Server " этого курса.Используйте новую стандартную политику возврата после правки Work Item, которая заставляет разработчиков связывать с возвратом рабочие элементы. Это поможет определить связь между изменениями, внесенными в исходный код, и рабочими элементами, отслеживающими ошибки и задания.
Применение политики, обязывающей разработчиков связывать рабочие элементы с возвратом после правки
Team Explorer правой кнопкой мыши щелкните нужный командный проект, раскройте подменю Team Project Settings и выберите команду Source Control.Check-in Policy.Add, а затем выделите и настройте политику Work Item.Дополнительные ресурсы
Visual Studio Team Foundation Server " этого курса.Политика анализа кода при возврате после правки, включенная в комплект Team Foundation Server, позволяет автоматически проводить статический анализ кода, гарантируя его соответствие соответствующим нормативам. Вы можете детально настроить политику анализа для проверки множества различных правил, определяющих требования к дизайну,
Применение политики анализа кода для соблюдения стандартов программирования
Team Explorer правой кнопкой мыши щелкните нужный командный проект, раскройте подменю Team Project Settings и щелкните команду Source Control.Check-in Policy и щелкните кнопку Add.Add Check-in Policy установите параметр Code Analysis и щелкните OK.Code Analysis Policy Editor задайте параметр Enforce C/ C++ Code Analysis (/analyze), Enforce Code Analysis For Managed Code или оба, если ваш проект содержит сочетание управляемого и неуправляемого кода.API, или написать политику для соблюдения стиля программирования, принятого в вашей команде, задав, например, как расставлять фигурные скобки в исходном коде.Дополнительные ресурсы
Visual Studio Team Foundation Server " этого курса.Microsoft Project.Microsoft Excel.Team Foundation Server.Используйте Microsoft Office Project для создания заданий по расписанию, выявления зависимостей задач, сбалансированного распределения ресурсов и определения сроков завершения. Чтобы управлять проектом при помощи Microsoft Project, нужно предпринять следующие шаги:
Team Foundation Server.Team Explorer, устанавливая статус рабочего объекта.Microsoft Project.Публикация плана проекта в TFS
Microsoft Office Project.Microsoft Office Project в меню Team выберите команду Choose Team Project.Team Foundation Server для своего командного проекта.OK.Work Item Type укажите тип для каждого рабочего элемента, который хотите опубликовать в TFS.Sync выберите вариант Do Not Publish для суммарных задач, которые не хотите публиковать в TFS.Если у вас есть задачи, назначенные более чем одному ресурсу, разделите их на отдельные задачи, порученные одному ресурсу. (В настоящий момент Team Foundation Server не поддерживает назначения рабочего элемента нескольким ресурсам.) При необходимости сгруппируйте отдельные задачи в суммарную задачу, чтобы получить возможность пользоваться автоматическим вычислением.
Совет Чтобы сгруппировать наборы задач, создайте в .
Publish на панели инструментов Work Item, чтобы опубликовать план проекта в TFS.Дополнительные ресурсы
Используйте Microsoft Office Excel® для хранения, сортировки, фильтрования и управления требованиями, сценариями, проблемами, ошибками, рисками и рабочими элементами.
Существует два способа создания списка рабочих элементов. Первый позволяет выбрать запрос рабочего элемента в Team Explorer и создать привязанную к нему электронную таблицу со списком рабочих элементов, заполненным данными из запроса. Второй способ - создать список рабочих элементов в Excel, используя надстройку для выбора проекта и импорта рабочих элементов.
Создание списка рабочих элементов в Excel
Microsoft Office Excel выберите в меню Team команду New List.Connect to a Team Foundation Server выберите сервер, к которому нужно подключиться, или щелкните Servers для ввода информации о сервере вручную.Team Projects выберите командный проект на сервере TFS, с которым хотите работать. Документ привязан к командному проекту.OK.Query List и выберите запрос в раскрывающемся списке Select a Query.Publish Changes в меню Team.Дополнительные ресурсы
Если вам не требуется поддержка функций управления проектом TFS, выходящих за рамки системы управления исходным кодом, вам вполне хватит минимального шаблона процесса. Чтобы создать минимальный шаблон процесса при помощи диспетчера Process Template Manager, загрузите шаблон на локальный компьютер, отредактируйте его, убрав неиспользуемые разделы, а затем выгрузите шаблон обратно на сервер.
Создание шаблона процесса с поддержкой только управления исходным кодом
Team Explorer щелкните правой кнопкой имя сервера. Затем выберите команды Team Foundation Server Settings и Process Template Manager.Download.Process Template.xml.Reporting, Portal и WorkItemTracking.Reporting, Portal и WorkItemTracking.WorkItemTracking.Reports, Windows Sharepoint Services и WorkItem Tracking.Team Explorer щелкните правой кнопкой имя сервера и выберите команды Team Foundation Server Settings и Process Template Manager.Upload и выберите шаблон, который вы хотите выгрузить. Выгрузив измененный шаблон процесса, вы сможете использовать его при создании новых командных проектов.Дополнительные ресурсы
Настройка шаблона процесса требуется, чтобы привести стандартные типы рабочих элементов, параметры безопасности, параметры системы управления исходным кодом и отчетов в соответствие с требованиями, предъявляемыми к процессу в вашей организации.
Настройка шаблона процесса
TFS.Есть два способа настройки выполняющегося процесса:
Process Template Editor из комплекта Microsoft Visual Studio 2005 Team Foundation Server Power Tool - графическим редактором для просмотра и настройки шаблонов процесса. Подключившись к TFS, его можно использовать для настройки определений типов рабочих элементов и глобальных списков активного проекта.Дополнительные ресурсы
Для настройки типа рабочего элемента используется инструмент .
Настройка типов рабочего элемента
Загрузите наиболее подходящий шаблон, выполнив следующие действия:
Visual Studio выберите в меню Team команду Team Foundation Server Settings.Process Template Manager.Process Template Manager выберите шаблон процесса, который хотите изменить, и щелкните кнопку Download.Save.Откройте шаблон процесса в Process Editor и отредактируйте типы рабочих элементов, как описано ниже:
Visual Studio откройте меню Team.Process Editor и Open Process Template.Open Process Template fileset перейдите к загруженному шаблону процесса и щелкните Open. Файл ProcessTemplate.xml будет загружен в Visual Studio.Process Template Explorer щелкните кнопку Work Item Tracking.Type Definition.Add, расположенную на панели инструментов справа, чтобы создать новый рабочий элемент.New Work Item Type введите имя типа рабочего элемента и выберите существующий тип рабочего элемента из раскрывающегося списка Copy From. Создается новый тип рабочего элемента, отображающийся в списке Item List на правой панели вкладки Type Definition.File команду Save.Type Definitions щелкните правой кнопкой тип рабочих элементов, который хотите отредактировать, и выберите команду Open. Выбранный тип откроется в новом окне Visual Studio.Дополнительные ресурсы
Есть два способа редактирования существующего типа рабочего элемента: из командной строки и при помощи инструмента Process Template Editor из комплекта TFS Power Tool.
Для редактирования типа рабочего элемента из командной строки используются инструменты witexport и witimport, которые находятся в папке %programfiles%\Program Files\Microsoft Visual Studio 8\Common7\IDE компьютера, на котором установлен Team Explorer.
Экспорт, редактирование и импорт типа рабочего элемента
witexport, как показано ниже, чтобы экспортировать тип рабочего элемента:witexport /f task.xml /t http://TFSServer:8080 /p MyTeamProject /n Task
witimport, как показано ниже, чтобы импортировать измененный тип:witimport /f task.xml /t http://TFSServer:8080 /p MyTeamProject
В предыдущем примере подразумевается экспорт типа рабочего элемента Task из проекта MyTeamProject на сервер с именем TFSServer.
Редактирование типа рабочего элемента с помощью Process Template Editor
Чтобы импортировать и отредактировать тип рабочего элемента, выполните следующие действия:
Visual Studio в меню Team выберите команду Process Template Editor. Затем щелкните Work Item Types и выберите Export WIT.Connect to Team Foundation Server введите URL сервера.Select Work Item Type выберите тип рабочего элемента, экспорт которого хотите осуществить.Отредактируйте тип рабочего элемента и сохраните изменения. Чтобы экспортировать тип рабочего элемента, выполните следующие действия:
Visual Studio в меню Team выберите команду Process Editor. Затем щелкните Work Item Types и выберите Import WIT.Connect to Team Foundation Server введите URL сервера.Import Work Item Type перейдите к отредактированному типу рабочего элемента и выберите командный проект, в который хотите его экспортировать.OK.Дополнительные ресурсы
Process Editor вы найдете в разделе "Как настроить шаблон процесса в Visual Studio Team Foundation Server " этого курса.Итерации применяются для группирования рабочих элементов, которое может использоваться при создании рабочих элементов, в запросах рабочих элементов и при составлении отчетов.
Создание итерации
Team Explorer щелкните командный проект.Team раскройте подменю Team Project Settings и выберите команду Areas and Iterations.Areas and Iterations перейдите на вкладку Iteration.Add a child node на панели инструментов.Rename и введите имя итерации.Iteration.Close.Примечание В шаблон процесса MS Agile включены три предопределенные итерации. При необходимости вы вольны, удалить эти итерации, переименовать их или оставить неизменными.
Дополнительные ресурсы
Области создаются для разделения работ по проекту на подобласти, связанные, например, с разработкой интерфейса, приложения и БД. Создав области, вы можете назначать им сценарии и рабочие элементы.
Начинайте с одиночной области корневого уровня. Позднее, с развитием проекта, вы будете по мере необходимости создавать новые области.
Создание областей
Team Explorer щелкните ваш проект.Team раскройте подменю Team Project Settings и выберите команду Areas and Iterations.Areas and Iterations перейдите на вкладку Area.Add a child node на панели инструментов.Rename и введите имя области.Area.Дополнительные ресурсы
Для подписки на уведомления о возврате после правки используется инструмент bissubscribe, расположенный в папке %programfiles%\Microsoft Visual Studio 2005 Team Foundation Server\TF Setup на сервере TFS.
Создание уведомления о возврате после правки
C:\Program Files\ Microsoft Visual Studio 2005 Team Foundation Server\TF Setup\.bissubscribe /eventType CheckinEvent /address someone@domain.com / deliveryType EmailHtml /domain http://TFSRTM:8080
bissubscribe /eventType CheckinEvent /address http://TFSRTM:8080/ci/ notify.asmx /deliveryType Soap /domain http://TFSRTM:8080
Если у вас возникли ошибки, а также если вы хотите удостовериться в правильности регистрации уведомления, выполните следующие действия:
SQL Server Management Studio.tfsIntegration.tbl_subscription.В таблице tbl_subscription перечислены все события, на которые задана подписка. Найдите в этой таблице записи о событиях, на которые вы подписаны. Чтобы отписаться от события, удалите из таблицы запись о нем или воспользуйтесь командой bissubscribe с параметром / и идентификатором события, например:
bissubscribe /delete/id [id] /server http://TFSRTM:8080
Дополнительные ресурсы
Чтобы собрать разнообразную информацию о проекте в одном месте, создайте на портале командного проекта Microsoft Office SharePoint® панель отчетов ( report dashboard ). Вот список отчетов, которые на ней можно разместить:
Remaining Work Оставшаяся работа.Quality Indicators Показатели качества.Bug Rates Частота появления ошибок.Project Velocity Темп выполнения проекта.В каждый отчет, который вы хотите отобразить на панели, нужно добавить веб-часть Report Viewer.
Изменение портала командного проекта и создание панели отчетов
Установите веб-часть Report Viewer на сервер отчетов. Для этого используются инструмент stsadm.exe и файл RSWebParts.cab, входящие в дистрибутив Microsoft Office SharePoint и Report Services.
STSADM.EXE находится в папке C:\Program Files\ Common Files\Microsoft Shared\web server extensions\60\BIN.RSWebParts.Cab находится в папке C:\ Program Files\Microsoft SQL Server\90\Tools\Reporting Services\SharePoint.Пример использования:
STSADM.EXE -o addwppack -filename "C:\ Program Files\Microsoft SQL Server\90\Tools\Reporting Services\SharePoint\RSWebParts.cab" -globalin-stall
Team Explorer щелкните правой кнопкой нужный проект и выберите команду Show Project Portal.Modify Shared Page, разверните подменю Browse и выберите команду Add Web Parts.Virtual Server Gallery.Web Part List выберите вариант Report Viewer.Add.Report Manager ), например,http:// <сервер отчетов>/reports.
<мой проект>/Quality Indicators.Дополнительные ресурсы
Создать папки в хранилище системы управления рабочим кодом можно при помощи Team Explorer, а также путем создания структуры папок в вашей рабочей области и последующим возвратом незавершенных изменений.
Создание структуры папок на сервере
Team Explorer разверните нужный командный проект.Source Control.Source Control Explorer выберите корневой узел, щелкните правой кнопкой панель Local Path и выберите команду New Folder.Enter.Создание структуры папок на клиенте
При первом возврате незавершенных изменений структура папок будет скопирована на сервер.
Дополнительные ресурсы
Средствами Team Explorer удалить проект нельзя, придется воспользоваться инструментом командной строки TfsDeleteProject. Он находится в папке Program Files\Microsoft Visual Studio 8\Common7\IDE на компьютере, где установлен Team Explorer.
Удаление проекта из TFS
C:\Program Files\ Microsoft Visual Studio 2005 Team Foundation Server\TF Setup\.TfsDeleteProject, как показано в примере: TfsDeleteProject /server:TfsServer TeamProjectNameДополнительные ресурсы
В этом разделе
Администрирование
Создание и настройка
Visual Studio.Excel.Просмотр
Модифицируйте сайт портала Microsoft® Office SharePoint® командного проекта, чтобы создать панель отчета. Она позволяет обобщать разнообразную информацию проекта в едином расположении. Функциональная панель отчетов должна, вероятно, включать следующие отчеты:
Вы вольны добавлять новые отчеты на страницу портала SharePoint. Для этого в каждый отчет, который вы хотите отобразить на странице, нужно добавить компонент Report Viewer Web Part.
Изменение портала командного проекта и создание панели отчетов
Report Viewer Web Part на сервер отчетов. Для этого используются инструмент stsadm.exe и файл RSWebParts.cab, которые входят в дистрибутив Microsoft Office SharePoint и Report Services, например:STSADM.EXE -o addwppack -filename "C:\ Program Files\Microsoft SQL Server\90\Tools\Reporting Services\SharePoint\RSWebParts.cab" -globalinstall
STSADM.EXE находится в папке C:\Program Files\Com-mon Files\Microsoft Shared\web server extensions\60\BIN.RSWebParts.Cab находится в папке C:\ Program Files\Microsoft SQL Server\90\Tools\Reporting Services\SharePoint.Team Explorer щелкните правой кнопкой ваш проект.Show Project Portal.Modify Shared Page.Browse и щелкните Add Web Parts.Virtual Server Gallery.Web Part List выберите вариант Report Viewer.Add.http://<сервер отчетов>/reports.<мой проект>/Quality Indicators.Дополнительные ресурсы
При помощи списка разрешений отчета вы определяете пользователей, которым можно редактировать и просматривать отчеты. Для установки разрешений вы должны быть членом роли в Microsoft SQL Server™ Reporting Services.
Предоставление разрешение на доступ ко всем отчетам командного проекта
Team Explorer разверните узел проекта.Reports и выберите команду Show Report Site.Properties.Security.Edit Item Security.Edit.New Role Assignment.Установка разрешений для одного отчета
Team Explorer разверните узел проекта.Reports и выберите Show Report Site.Properties.Security.Edit Item Security.Edit.New Role Assignment.Дополнительные ресурсы
Visual Studio.Excel.Существующие отчеты модифицируются при помощи инструмента Microsoft SQL Server™ 2005 Reporting Services Designer, входящего в Visual Studio (Business Intelligence Development Studio) , который поставляется с клиентскими инструментами SQL Server 2005. Часто модифицировать существующий отчет проще, чем создать новый.
Создание проекта отчета
Visual Studio откройте меню File и выберите команды New и Project.Business Intelligence Project.Report Server Project.Name и его расположение в поле Location. Щелкните OK.Экспорт модифицируемого отчета
Show Project Portal.Quick Launch, находящейся слева, щелкните Reports.Properties.Edit..rdl в папке проекта, созданного ранее.Добавление источников данных
Visual Studio Solution Explorer щелкните правой кнопкой Shared Data Sources и выберите команду Add New Data Source.TfsReportDS в текстовое поле Name.Type выберите Microsoft SQL Server.Edit.TFSWarehouse.ОК, чтобы добавить источник данных.OLAP:Visual Studio Solution Explorer щелкните правой кнопкой Shared Data Sources и выберите команду Add New Data Source.General введите TfsOlapReportDS в поле Name.Type выберите Microsoft SQL Server.Edit.TFSWarehouse.ОК, чтобы добавить источник данных.Добавление отчета в проект
Solution Explorer щелкните правой кнопкой Reports, затем щелкните Add и Existing Item..rdl , экспорт которого выполнили ранее.Редактирование отчета
Layout Pane.Примечание Вы, конечно, можете использовать построитель отчетов ( Report Builder ), который имеется на сайте отчетов команды, но этот инструмент не очень хорошо поддерживается сценариями отчетов Visual Studio, поэтому работать с ним не рекомендуется.
Дополнительные ресурсы
Создание отчетов также осуществляется при помощи инструмента Microsoft SQL Server™ 2005 Reporting Services Designer, входящего в Visual Studio (Business Intelligence Development Studio) из клиентского комплекта SQL Server 2005.
Новый отчет следует создавать лишь в том случае, если у вас нет отчетов, которые при изменении будут удовлетворять вашим новым потребностям. Часто модифицировать существующий отчет проще, чем создать новый.
Создание проекта отчета
Visual Studio откройте меню File и выберите команды New и Project.Business Intelligence Project.Report Server Project.Name и его расположение в поле Location. Щелкните OK.Добавление источников данных
Visual Studio Solution Explorer щелкните правой кнопкой Shared Data Sources и выберите команду Add New Data Source.General введите TfsReportDS в текстовое поле Name.Type выберите Microsoft SQL Server.Edit.TFSWarehouse.ОК, чтобы добавить источник данных.OLAP:Visual Studio Solution Explorer щелкните правой кнопкой Shared Data Sources и выберите команду Add New Data Source.General введите TfsOlapReportDS в поле Name.Type выберите Microsoft SQL Server.Edit.TFSWarehouse.ОК, чтобы добавить источник данных.Создание нового шаблона
Solution Explorer щелкните правой кнопкой Reports и выберите команды Add и New Item.Report.OK.Редактирование шаблона
Report Designer не открывается автоматически, откройте отчет для редактирования, дважды щелкнув его в Solution Explorer.Dataset выберите вариант New Dataset.TestDataSet.TFSOlapReportDS (shared) .OK.Build (прямо под списком Dataset ), после чего выберите Team System.Теперь вы можете изменять отчет, перетаскивая меры и измерения из дерева Dataset на панели Query и Filter. Макет шаблона изменяется на вкладке Layout. Предварительно просмотреть отчет можно на вкладке Preview.
Примечание Вы, конечно, можете использовать построитель отчетов ( Report Builder ), который имеется на сайте отчетов команды, но этот инструмент не очень хорошо поддерживается сценариями отчетов Visual Studio, поэтому работать с ним не рекомендуется.
Дополнительные ресурсы
Вы можете создавать пользовательские отчеты, подключив Microsoft Office Excel® напрямую к кубу TFS Reporting OLAP. Excel позволяет отображать данные отчета в форме сводных таблиц или сводных диаграмм.
Создание отчета в форме сводной таблицы Excel
Excel.Data выберите команду PivotTable and PivotChart Report.External Data Source.Next.Get Data.OLAP Cubes .New Data Source и щелкните OK.Microsoft SQL Server 2005 Analysis Services 9.0 OLE DB.Connect.Analysis Server.TFSRTM.Next.TFSWarehouse и щелкните Finish.Code Churn, Work Items, Test Result ) и щелкните OK.OK, чтобы вернуться в мастер Pivot Table and Pivot Chart Wizard.Finish, чтобы добавить сводную таблицу на лист. Перетащите столбцы и измерения в сводную таблицу из списка PivotTable Field List.Ниже приведен пример отображения количества строк для каждого командного проекта на сервере:
Code Churn.TeamProject.TeamProject в раздел Column Fields сводной таблицы.Total Lines в раздел Data Items сводной таблицы.Дополнительные ресурсы
Чтобы лучше понимать тенденции развития проекта, воспользуйтесь плановыми снимками отчета. Кроме того, они позволяют сохранить важные информационные точки проекта.
Плановое создание снимка отчета
Team Explorer правой кнопкой щелкните Reports и выберите команду Show Report Site.Properties.History.После создания расписания вы сможете просматривать отчеты на вкладке History данного отчета. Там же можно создавать снимки вручную.
Подписки на отчеты используются для генерации отчетов и их экспорта в общий ресурс. Подписки можно настроить на перезапись старых отчетов. Вы также вольны создавать набор отчетов в течение некоторого времени, чтобы просмотреть снимки данных проекта.
Создание подписки на отчет
Team Explorer щелкните правой кнопкой Reports и выберите команду Show Report Site.Subscriptions.New Subscription, чтобы создать новую подписку.Для добавления новых отчетов в существующий шаблон процесса применяется инструмент .
Добавление нового отчета
Visual Studio щелкните Team и выберите Team Foundation Server Settings.Process Template Manager.Process Template Manager выберите шаблон процесса, который хотите изменить, и щелкните Download.Process Template Manager выберите расположение на локальном диске и щелкните Save.Process Editor:Visual Studio раскройте меню Team.Process Editor и щелкните Open Process Template.Open Process Template fileset перейдите к загруженному шаблону процесса, а затем щелкните Open. В окне Visual Studio откроется файл ProcessTemplate.xml.Name (имя) для методологии, к которой вы применяете настройки.Process Template Explorer щелкните Reports.Add.Report Detail диалогового окна Report введите имя отчета..rdl , который хотите добавить в поле File Name. Остальные поля оставьте без изменений. Не следует также вносить изменения в данные, содержащиеся на вкладках Properties и Parameters.DataSources введите источники данных. Стандартные источники данных для шаблонов процесса, поставляющихся с TFS, - /TfsOlapReportDS и /TfsReportDS.OK.Дополнительные ресурсы
Process Editor при настройке типов рабочих элементов вы найдете в разделе "Как настроить шаблон процесса в Visual Studio Team Foundation Server " этого курса.Для анализа состояния проекта используется отчет . В нем показано, насколько быстро команда справляется с работой и как темп работы изменяется ото дня ко дню.
Просмотр состояния приложения
Team Explorer разверните узел проекта, щелкните правой кнопкой Reports и выберите команду Show Report Site.Velocity .Для анализа качества приложения используйте отчет Quality Indicators. В нем собраны результаты, ошибки, данные о покрытии кода тестами и изменяемости кода.
Анализ качества приложения
Team Explorer разверните узел проекта, щелкните правой кнопкой Reports и выберите команду Show Report Site.Quality Indicators.Для просмотра оставшейся части работы используется отчет Remaining Work. В нем показано, сколько работ выполнено и закрыто и сколько работы еще предстоит выполнить. Опираясь на эти сведения, вы сможете примерно рассчитать дату завершения работы над кодом.
Просмотр оставшейся части работы
Team Explorer разверните узел проекта, щелкните правой кнопкой Reports и выберите команду Show Report Site.Remaining Work.Если вы используете шаблон процесса MSF CMMI, отчет Builds позволит вам просматривать результаты тестов BVT. В этом отчете содержится список имеющихся сборок, а также сведения об их качестве и другая информация.
Просмотр состояния сборки
Team Explorer разверните узел проекта, щелкните правой кнопкой Reports и выберите команду Show Report Site.Builds.Для просмотра ошибок используется отчет Bugs by Priority, отображающий соотношение высокоприоритетных и низкоприоритетных ошибок. Отчет Quality Indicators универсален - он применяется для просмотра результатов тестов, ошибок, покрытия кода тестами и изменяемости кода.
Просмотр ошибок и результатов тестов
Team Explorer разверните узел проекта, щелкните правой кнопкой Reports и выберите команду Show Report Site.Bugs by Priority для просмотра ошибок или отчет Quality Indicators для просмотра результатов тестов.Для сравнения запланированной и реально выполненной работы используйте отчет Unplanned Work. Он отображает полную работу в сравнении с оставшейся работой, а также отделяет запланированные задачи от внеплановых.
Просмотр отчета Unplanned Work
Team Explorer разверните узел проекта, щелкните правой кнопкой Reports и выберите команду Show Report Site.Unplanned Work.Для определения владельца последней редакции файла воспользуйтесь историей файла в окне Source Control Explorer.
Определение пользователя, изменившего файл последним
Source Control Explorer выберите нужный файл.View History.History просмотрите историю изменений, включая их автора.Дополнительные ресурсы
Чтобы найти все изменения, внесенные в код проекта конкретным разработчиком, пользуйтесь командой TF History. Вот как выглядит команда, отображающая все изменения, внесенные пользователем Mario:
tf history $/ /r /user:Mario
Ключ $/ используется для организации поиска по всему хранилищу. Чтобы ограничить область поиска только вашим командным проектом, задайте параметр $/Имя Командного Проекта.
Дополнительные ресурсы
При помощи истории файла исходного кода можно из окна Source Control Explorer находить изменения, внесенные в файл.
Определение всех изменений, внесенных в файл
Source Control Explorer выберите нужный файл.View History.History просмотрите историю изменений.Дополнительные ресурсы
Если во время возврата после правки с набором изменений был связан рабочий элемент, вы сможете просматривать эти изменения на вкладке Links рабочего элемента.
Просмотр изменений кода, связанных с рабочим элементом
Links. Если с рабочим элементом связан набор изменений, он будет перечислен в списке на панели Links.Дополнительные ресурсы
Для просмотра подробностей автоматической генерации кода используется отчет Quality Indicators. В нем собраны результаты, ошибки, данные о покрытии кода тестами и изменяемости кода.
Просмотр отчета Quality Indicators
Team Explorer разверните узел проекта, щелкните правой кнопкой Reports и выберите команду Show Report Site.Quality Indicators.В качестве альтернативы вы можете генерировать отчет об изменяемости кода в Excel. Дополнительные сведения содержатся в разделе "Как создать новый отчет в Excel" этой лекции.
Создавайте отчеты по различным показателям рабочей области, подключив Excel напрямую к кубу OLAP TFS Reporting. С помощью Excel отобразите данные отчета в форме сводных таблиц или сводных диаграмм.
Создание сводной таблицы Excel
Excel.Data выберите команду PivotTable and PivotChart Report.External Data Source.Next.Get Data.OLAP Cubes .New Data Source и щелкните OK.Microsoft SQL Server 2005 Analysis Services 9.0 OLE DB.Connect.Analysis Server.TFSRTM.Next.TFSWarehouse и щелкните Finish.Code Churn и щелкните OK.OK, чтобы вернуться в мастер Pivot Table and Pivot Chart Wizard.Finish, чтобы добавить сводную таблицу на лист.При помощи списка PivotTable Field List перетащите в сводную таблицу столбцы и меры.
Подсчет файлов в каждом командном проекте
TeamProject.TeamProject в раздел Page Fields сводной таблицы.FileName.FilePath в раздел Row Fields сводной таблицы.Team Project в разделе Page Fields.
Обратите внимание на количество отображенных строк. Это и есть количество файлов.Подсчет строк в каждом командном проекте
TeamProject.TeamProject в раздел Column Fields сводной таблицы.Total Lines в раздел Data Items сводной таблицы.Подсчет командных проектов, находящихся на сервере
TeamProject.TeamProject в раздел Row Fields сводной таблицы.Дополнительные ресурсы
В этом разделе
Доступ к системе управления версиями
Visual Studio.Администрирование
Team Foundation Server на другой сервер.Ветвление, метки и слияние
Сборки
TFS производить непрерывную сборку.Возврат после правки и соответствующие политики
Отладка, извлечение и блокировка
TFS.Совместное использование кода
Зависимости
Распределенная и удаленная разработка
TFS через Интернет.TFS -прокси.Миграция
Visual SourceSafe.Управление проектом и рабочей областью
Безопасность
TFS.Отложенные правки
Visual Studio.Чтобы получить доступ к системе управления версиями Microsoft® Visual Studio® 2005 Team System (VSTS) Team Foundation Server (TFS) , работая на клиентах под управлением других систем, воспользуйтесь следующими способами:
Microsoft Source Code Control Interface (MSSCCI) ;Интеграция при помощи MSSCCI
Ниже приведен список клиентов, способных работать с системой управления версиями TFS через поставщика MSSCCI:
Microsoft Visual Studio .NET 2003.Microsoft Visual C++® 6 SP6.Microsoft Visual Basic® 6 SP6.Microsoft Visual FoxPro ® 9 SP1.Microsoft Access™ 2003 SP2.Microsoft SQL Server™ Management Studio.Sparx Systems Enterprise Architect 61.Sybase PowerBuilder 105.Toad for SQL Server 2.0.Загрузить провайдер .
Интеграция при помощи продуктов сторонних производителей
Для следующих клиентов существуют решения интеграции, предлагаемые независимыми производителями:
Eclipse.Linux.Apple Macintosh.HTML.Чтобы получить доступ к системе управления версиями ).
Чтобы получить доступ к системе управления версиями ).
Пользовательская интеграция
На сегодняшний день, решений интеграции для других клиентов не существует. Вы можете получить доступ к TFS либо из командной строки, либо создав собственное интегрирующее решение.
Чтобы автоматизировать работу с командной строкой, используйте
Дополнительные ресурсы
Автоматизация наиболее распространенных задач, связанных с управлением версиями, осуществляется с помощью инструмента командной строки tf. exe. Он позволяет выполнять те же действия, что и Source Control Explorer, включая операции управления исходным кодом ( add, check-in, и т. д.), ветвление, создание отложенных правок, манипуляции с рабочей областью и основные административные функции.
Основные плюсы работы с данным инструментом - автоматизация часто повторяющихся действий и возможность создания расписания действий, выполнение которых происходит при наступлении определенных событий, или при помощи Windows. Кроме того, в командной строке доступны следующие действия:
Чтобы правильно установить пути и других переменные среды, следует запускать инструмент из окна командной строки Visual Studio 2005 или выполнить пакетный файл Vsvars32, который, как правило, расположен в папке Диск:\Program Files\Microsoft Visual Studio 8\Common7\Tools.
Инструмент Tf.exe устанавливается в составе клиента TFS и по умолчанию расположен в папке C:\Program Files\Microsoft Visual Studio 8\Common 7\IDE.
При запуске инструмента командной строки следует задать имя сервера при помощи параметра /s. Далее приведен пример команды, отображающей файлы в системе управления исходным кодом, расположенной на сервере YourTFSServer: tf.exe dir /s:YourTFSServer
Дополнительные ресурсы
Автономный режим работы системой управления версиями TFS не поддерживается. Чтобы все-таки поработать автономно, вы должны в точности выполнить следующие действия:
Свойства (Properties) , снимите флажок Только чтение (Read-only) и щелкните OK. То же действие можно выполнить с помощью команды attrib -r.Добавьте или удалите файлы, с которых сняли метку "только для чтения". Не переименовывайте файлы, потому что инструмент TFTP online не способен отличить операцию переименования ( rename ) от операции удаления ( delete ) в сочетании с операцией добавления ( add ).
Примечание Команда Tfpt online ищет удаленные файлы только при указании соответствующего параметра, поскольку это довольно продолжительная операция.
TFPT online, вернувшись в оперативный режим работы. Для этого нужно ввести в командной строке TFTP online. Эта команда проверит рабочую область на предмет наличия записываемых файлов и определит, какие изменения следует отправить на сервер. Если вы удалили какие-либо файлы, задайте параметр /delete. Затем инструмент отобразит окно оперативного режима, в котором можно выбрать, какие изменения следует перенести в вашу рабочую область.Важно! Во время автономной работы нельзя переименовывать файлы.
Дополнительные ресурсы
Team Foundation Server на другой сервер.Чтобы подключить к работе нового разработчика, предоставьте ему доступ к соответствующему командному проекту и связанному с ним сайту Microsoft Office SharePoint®. Чтобы разработчик мог просматривать отчеты, предоставьте учетной записи разработчика доступ к SQL Server Reporting Services.
Предоставление доступа к командному проекту
Visual Studio с учетной записью, входящую в группу администраторов Team Foundation.Team Explorer, если его там еще нет.Team Project Settings и выберите команду Group Membership.Project\Contributors, щелкните Properties и добавьте в эту группу учетную запись нового разработчика.Примечание Члены группы Contributors обладают набором типичных разрешений, требующихся разработчику, включая возможность добавлять, изменять и удалять элементы командного проекта и выполнять сборки.
Предоставление доступа к сайту SharePoint
Site Settings.Administration щелкните Manage Users.Add Users.Contributor и щелкните кнопку Next.Finish.Примечание Члены группы Contributors обладают набором типичных разрешений, требующихся разработчику, включая возможность добавлять, изменять и удалять элементы командного проекта и выполнять сборки. Если вам нужно ограничить доступ разработчика к некоторым решениям Visual Studio или к некоторым папкам командного проекта, задайте разрешения на уровне папки или файла.
Предоставление доступа к SQL Server Reporting Services
Properties.Security.New Role Assignment.Windows вашего разработчика, выберите вариант Browser и щелкните OK.Примечание Членство в группе Browser позволяет разработчику просматривать отчеты и подписываться на них.
Дополнительные ресурсы
Если разработчик покинул проект, убедитесь, что удалили его рабочую область. Выполнение этой операции не только обеспечивает безопасность проекта, но и приводит к удалению всех незавершенных изменений разработчика и снятию всех установленных им блокировок.
Примечание Если к командному проекту применена
Чтобы выяснить, какие файлы были заблокированы разработчиком, выполните следующую команду:
tf workspaces /owner:domain\devuser /computer:* /server:servername
Чтобы удалить рабочую область и
tf workspace /delete workspacename;domain\devuser /s:servername
Затем удалите учетную запись разработчика из групп безопасности, внеся изменения в три области:
TFS Войдите в Visual Studio с учетной записью из группы администраторов Team Foundation. В окне Team Explorer щелкните правой кнопкой нужный проект, раскройте подменю Team Project Settings, выберите команду Group Membership и удалите ученую запись разработчика из соответствующих групп (как правило, Contributors).SharePoint Войдите на сайт команды, расположенный по адресу http://server/sites/ИмяВашегоПроекта/default.aspx, с учетной записью администратора. Щелкните Site Settings, Manage Users и удалите учетную запись разработчика.SQL Server Reporting Services Войдите на административный сайт SQL Server Reporting Services с учетной записью администратора. Сайт расположен по адресу http://server/reports. Щелкните имя командного проекта, перейдите на вкладку Properties, затем на вкладку Security и удалите учетную запись разработчика.Дополнительные ресурсы
Вы можете предоставлять разрешения в пределах дерева исходного кода. Для этого в обозревателе Source Control щелкните правой кнопкой папку или файл и выберите команду Properties. Перейдите на вкладку Security, выберите группу пользователей, разрешения которой хотите изменить, и внесите нужные исправления. Можно также установить разрешения с помощью утилиты командной строки tf.exe с параметром Permissions.
Вы вольны назначать разрешения на доступ к системе управления исходным кодом для отдельных папок и файлов, однако по умолчанию разрешения внутри дерева исходного кода наследуются от разрешений, примененных к папке проекта. Если разработчики являются членами группы Project\ Contributors, они могут читать, изменять, возвращать после правки, присваивать метки и блокировать файлы исходного кода. Чтобы ограничить доступ к подмножеству папок или файлов исходного кода в командном проекте, например, позволить разработчикам работать только над определенными файлами в проекте, задайте разрешения на уровне папки или файла.
Дополнительные ресурсы
Система Team Foundation Server не поддерживает ни копирование сервера из одного расположения в другое, ни зеркалирование. Вы можете создавать и восстанавливать резервные копии всего сервера, перемещать оборудование сервера в новый домен или выполнить обновление до раздельной системы развертывания. Нельзя осуществлять частичное перемещение, например, переместить одни проекты и оставить другие.
Система Team Foundation Server поддерживает три типа переноса:
Перенося Team Foundation Server, учитывайте следующие моменты:
TFS, все клиенты должны подключаться к нему по новому имени.Microsoft Office, связанные с запросами. Документы привязаны к серверу, для которого были созданы. Это относится ко всем документам Microsoft Office, формируемым при помощи запросов и создаваемым автоматически в узле Documents во время разработки проекта.TFS существовали локальные учетные записи. Вам предстоит решить, как воссоздавать их: как локальные учетные записи на перенесенном сервере TFS или как доменные учетные записи в новом домене перенесенного TFS.TFS существовали доменные учетные записи, и вы перемещаете TFS в другой домен, у которого нет доверительных отношений с первоначальным доменом. Решите, что лучше: воссоздать учетные записи на перенесенном TFS как локальные, или создать доменные учетные записи в новом домене перенесенного сервера TFS.Следует проверить сервер после переноса, убедившись, что во время переноса не произошло серьезных ошибок. Тестирование должно охватывать следующие аспекты:
Дополнительные ресурсы
При помощи меток вы объединяете файлы и папки в наборы для проведения операций над ними в будущем. Метки используются для ветвления, слияния, сравнения или получения файлов. Метка представляет собой маркер, к которому можно вернуться позднее при выполнении перечисленных выше операций.
Присвоение метки файлу или папке
Apply Label.Choose Item Version уточните имя файла или папки, выберите версию файла или папки, которую хотите пометить, и щелкните OK, чтобы применить метку.При применении меток следует учитывать следующее:
Source Control Explorer, автоматически видны в корневой папке проекта, внутри которого они были созданы. Нельзя создать две метки с одинаковыми именами в одной зоне видимости.Team Build автоматически присваивает метки набору файлов, задействованному в любой создаваемой ею сборке.Поиск существующей метки
File откройте подменю Source Control, затем выберите команду Label, щелкните Find Label и перейдите в расположение метки.Find Label изменить или удалить ее.Дополнительные ресурсы
Чтобы создать ветвь, используйте Source Control Explorer или команду tf branch из командной строки.
Для реализации ветвления из Source Control Explorer щелкните правой кнопкой папку самого высокого уровня с исходным кодом вашего проекта, выберите команду Branch и укажите расположение и имя конечной папки, поясняющее назначение ветви, например, MyProject_Release1.0_Branch.
Чтобы выполнить ветвление из командной строки Visual Studio 2005, используйте команду tf branch, например: tf branch C:\MyProject $/MyProject_Release1.0_Branch
Ветви следует использовать, только если вам нужно изолировать параллельную разработку. При этом вам придется периодически переносить изменения в основную ветвь, что влечет за собой дополнительные расходы и требует разрешения конфликтов. Не выполняйте ветвление без необходимости.
Дополнительные ресурсы
Ветви - механизм изоляции. Они используются, чтобы позволить нескольким пользователям работать над одними и теми же файлами одновременно. При разработке способа ветвления следует рассмотреть типичные сценарии и избрать стратегию, опираясь на размер и структуру команды, периодичность выпусков и требования к стабильности сборок. Ниже приведены типовые сценарии ветвления:
Не выполняйте ветвление без необходимости, поскольку оно добавит работы по обслуживанию дополнительного дерева исходного кода и по слиянию. Большинство команд разработчиков, создающих коммерческие приложения ( LOB ), работают по короткому циклу выпуска и не нуждаются в ветвлении. Команды разработчиков, работающие с более продолжительными циклами, например, независимые поставщики ПО, нуждаются в ветвлении чаще.
Дополнительные ресурсы
Перед выпуском, когда вы готовы стабилизировать сборку, создайте ветвь выпуска.
После ветвления структура папок будет выглядеть примерно так:
Main - главная ветвь сборки.Source.Releases - контейнер для ветвей выпусков.Release 1 - ветвь выпуска.Source.Учитывайте следующие рекомендации по работе с ветвью выпуска:
Main ), а затем создайте ветвь выпуска ( Release ), целью которой будет стабилизация приложения перед выпуском.Ветвь Release применяется для внесения конкретных исправлений и изменений, требующихся для стабилизации сборки перед выпуском. Параллельно в ветвях Development или Main может продолжаться разработка следующих версий приложения. В них также могут понадобиться стабилизирующие изменения, внесенные вами в ветви Release. После создания окончательной сборки выпуска, перенесите изменения из ветви Release в ветви Development или Main.
Дополнительные ресурсы
Для поддержки ранее выпущенных сборок используйте ветви сопровождения. Они очень похожи на ветви выпусков, но существуют более продолжительное время.
Примерно так будет выглядеть структура ветвей, после того как вы выпустите приложение и создадите ветвь для его сопровождения:
Main - Главная ветвь сборки.Source.Releases - контейнер для ветвей выпусков.Release 1 - ветвь сопровождения.Source.Учитывайте следующие рекомендации по работе с ветвью сопровождения:
Ветви сопровождения используются для поддержки предыдущих версий приложения. Вы можете перенести изменения в главную ветвь сборки или оставить их исключительно в ветви сопровождения.
Дополнительные ресурсы
Во избежание ошибок сборки проводите активную разработку в ветви Development, а общую сборку - в ветви Main. Примерно так будет выглядеть структура ветвей после создания ветви разработки Development:
Development - ветвь разработки.Source.Main - главная ветвь сборки.Source.Учитывайте следующие рекомендации по работе с ветвью разработки:
Main и Development, чтобы сделать ежедневные сборки более предсказуемыми. Стоит также подумать об ужесточении политики возврата после правки.Main должна быть доступна для чтения и записи разработчикам, отвечающим за слияние и сборку. Остальные получают разрешения только на чтение.Development должна быть доступна всем для чтения и записи.Main - ежедневно.Development - непрерывная сборка.Main проводятся испытания целостности, производительности и безопасности.Development проводятся беглое тестирование, а также испытания функций.Используйте ветвь Main для интеграции изменений, внесенных в ветви разработки. В ветви Development следует выполнять всю активную разработку с последующим переносом в ветвь Main изменений, не приводящих к ошибкам сборки.
Дополнительные ресурсы
Используйте ветвь функций для стабилизации разработки отдельных компонентов и функций.
После создания ветвей функций структура папок будет выглядеть примерно так:
Development - контейнер для ветвей функций.Source.Source.Source.Main - главная ветвь сборки.Source.Учитывайте следующие рекомендации по работе с ветвью функции:
Main или папки отдельных групп (в больших проектах).Ветвление позволяет вести разработку функций параллельно. При этом вся активная разработка выполняется в ветвях функций, а последующая интеграция кода - в ветви Main.
Дополнительные ресурсы
Используйте ветви команд для изоляции критических ошибок в командах. После создания ветвей команд структура папок будет выглядеть примерно так:
Development - контейнер для ветвей команд.Team 1 - ветвь команды.Source.Team 2 - ветвь команды.Source.Main - главная ветвь сборки.Source.Учитывайте следующие рекомендации по работе с ветвями команд:
Не пренебрегайте ветвлением команд, чтобы команды могли работать над своими задачами одновременно. Ветви помогают изолировать ошибки команды, а также позволяют командам двигаться к различным вехам. Вся активная разработка должна проводиться в ветвях команд с последующим переносом в главную ветвь ( Main ). Внутри ветвей команд можно также создавать ветви функций.
Дополнительные ресурсы
Используйте ветви внешних зависимостей для изоляции критических ошибок во внешних зависимостях.
После создания ветвей внешних зависимостей структура папок может выглядеть примерно так:
External - ветвь внешней зависимости.Source.Main - главная ветвь сборки.Source.Учитывайте следующие рекомендации по работе с ветвью внешней зависимости:
External ) для изоляции этих изменений.Ветвь внешней зависимости следует использовать для экспериментальных изменений во внешних зависимостях перед переносом этих изменений в ветвь Main. Стоит также изолировать команду разработчиков от критических ошибок, вызванных внешними зависимостями, например, заголовочными файлами или библиотеками.
Дополнительные ресурсы
Создайте архивную папку для хранения старых выпусков, которые уже нет смысла поддерживать. После создания архивной ветви структура папок будет выглядеть примерно так:
Main - главная ветвь сборки.Source.Releases - контейнер для ветвей выпусков.Release 2 - ветвь сопровождения.Source.Release 1 - архивная ветвь.Source.Перемещая ветви из папки Releases в архив, вы разгружаете папку Releases и одновременно сохраняете старые выпуски. Это не создание новой ветви, а, скорее, перемещение старой ветви в новую папку.
Дополнительные ресурсы
Слияние заключается в переносе изменений из одной ветви в другую. Его можно выполнять, используя возможности обозревателя Source Control или команду tf merge. Слияние выполняется по набору изменений, метке, дате или версии. Чтобы приступить к слиянию, щелкните правой кнопкой ветвь в Source Control и выберите команду Merge. Мастер Source Control Merge Wizard поможет выбрать целевую ветвь (в которую будет выполнено слияние).
В зависимости от структуры ветвей изменения можно переносить вверх по иерархии, вниз по иерархии или поперек иерархии. При поперечном слиянии выполняется слияние без основы. Для выполнения последнего вам придется воспользоваться командой tf merge, поскольку слияние без основы в Visual Studio не поддерживается. Слияние без основы позволяет переносить файлы, не имеющих связей по ветви или слиянию. После проведения слияния без основы необходимые связи устанавливаются, и следующие слияния уже будут иметь основу. Вам по-прежнему придется выполнять их из командной строки, однако число конфликтов слияния сократится.
Имейте в виду, что слияние вдоль иерархии - от родительской к дочерней ветви или от дочерней к родительской ветви - завершается с меньшим количеством конфликтов, чем слияние поперек иерархии. Иерархия ветвей основана на родительских и дочерних ветвях и может отличаться от физической структуры, которую вы видите в Source Control. Например:
Физическая структура.
Development - ветвь разработки.Main - главная ветвь сборки.Releases - контейнер для ветвей выпусков.Release 1 - ветвь выпуска.Main.Development.Release 1.Дополнительные ресурсы
Слияние без основы производится при помощи команды tf merge /baseless из командной строки Visual Studio 2005.
В следующем примере команды выполняется слияние без основы из исходной ветви в целевую. Параметр /recursive используется для рекурсивного слияния всех файлов и папок, находящихся в указанной папке:
merge /baseless <<путь_к_источнику>> <<конечный_путь>> /recursive
Например,
tf merge /baseless c:\data\proj1 c:\data proj2 /recursive
Процесс переноса элементов ветвей, не являющихся прямыми ветвями друг друга, называется слиянием без основы ( baseless merge ). Слиянием без основы можно считать слияние изменений между двумя ветвями выпусков, находящимися на одном уровне, но не имеющих общей родительской ветви. Слияние без основы выполнимо только из командной строки; из Visual Studio его осуществить нельзя.
Когда выполняется слияние без основы, у TFS нет никакой информации о связи между файлами в ветвях. Например, переименование файла будет расценено, как удаление из ветви одного файла и появление в ней другого. Поэтому вам придется разрешать вручную больше конфликтов, чем при обычном слиянии. Тем не менее, с подобным разрешением конфликтов вы столкнетесь только один раз. В процессе слияния без основы TFS записывает его историю и устанавливает связи между папками и файлами. При этом последующие слияния все равно должны будут выполняться из командной строки.
Дополнительные ресурсы
Для разрешения конфликтов слияния используйте инструментарий слияния Visual Studio. Обнаружив конфликт в процессе слияния, вы можете разрешить его автоматически или вручную. Разрешая конфликт вручную, вы вольны сохранить изменения из исходной ветви, сохранить изменения из целевой ветви или разрешить конфликт при помощи инструмента слияния. Необходимость в разрешении конфликтов возникает при выполнении слияния ветвей, извлечении файлов в рабочую область или возврате новых версий файлов. Существуют три типа конфликтов:
get при попытке перезаписать редактируемый файл. Большинство конфликтов может быть разрешено автоматически.Личного вмешательства требует только конфликт версий. Чаще всего ручное разрешение конфликтов происходит в следующих сценариях:
TFS не известны связи файлов ветвей.Инструментарий слияния отображает подробности каждого конфликта и позволяет выбрать изменения, которые следует сохранить после слияния. Вы можете сохранить изменения источника или целевого файла, объединить изменения или вручную модифицировать окончательную версию, осуществив ввод непосредственно в файл.
Разрешив все конфликты в файле, сохраните окончательную версию как незавершенное изменение в целевой ветви.
Будьте осторожны во время слияния: при этом легко допустить ошибки, которые приведут к нестабильности сборки. Завершив слияние, скомпилируйте получившийся исходный код и выполните модульные тесты, чтобы убедиться в отсутствии серьезных ошибок.
Дополнительные ресурсы
Во избежание конфликтов, сделайте следующее:
Просмотр незавершенных изменений
Source Control щелкните правой кнопкой решение, проект, папку или файл, для которых хотите просмотреть незавершенные изменения.View Pending Changes.Этот способ позволяет просмотреть все незавершенные изменения в выбранной области. Кроме того, узнать об отложенных изменениях можно, воспользовавшись инструментом командной строки, например:
tf status /format:detailed /user:*
Эта команда отображает подробную информацию о статусе всех незавершенных изменений, внесенных всеми пользователями. В выводимом списке наряду с изменениями указано, кто и какие файлы извлек.
Дополнительные ресурсы
TFS производить непрерывную сборку.Чтобы проводить сборку непрерывно, осуществляя ее при каждом возврате файла после правки, вам понадобится веб-служба, запускающая процесс сборки. Вы подписываете веб-службу на события возврата после правки, чтобы сборка запускалась каждый раз, когда происходит такое событие. Чтобы запустить сборку, вам также понадобится подходящий тип сборки, в котором определена конфигурация сборки, действия после сборки, выполняемые тесты, расположение, используемое для выгрузки и т. д.
Набор изменений ( changeset ) представляет собой совокупность изменений, связанных с конкретным возвратом после правки. Вот список наиболее распространенных действий, применимых к наборам изменений:
Возврат набора изменений, связанного с рабочим элементом
Visual Studio откройте меню View, раскройте подменю Other Windows и выберите команду Pending Changes.Work Items, чтобы раскрыть список рабочих элементов, связанных с набором.Associate или Resolve (если возврат после правки подразумевает разрешение рабочего элемента).Задание метки набора изменений
Source Control щелкните правой кнопкой папку с командным проектом и выберите команду Apply Label.Version выберите вариант Changeset, введите номер в поле Changeset number и щелкните OK.Apply Label введите имя метки и комментарий. Щелкните OK.Просмотр свойств набора изменений
Производится с помощью команды tf changeset. Далее приведен пример команды, отображающей в диалоговом окне Details for Changeset свойства набора изменений под номером 1234: tf changeset 1234
В этом диалоговом окне вы можете просмотреть файлы исходного кода, содержащиеся в наборе изменений, а также комментарии и примечания. Кроме того, можно просмотреть связанные с набором рабочие элементы и все предупреждения, сгенерированные политиками во время возврата набора изменений на сервер.
Изменение свойств набора изменений
Используйте команду tf changeset, чтобы изменить комментарии и примечания, связанные с набором изменений. Приведенная ниже команда вызывает диалоговое окно Details for Changeset со свойствами набора под номером 1234 и обновляет поле комментария.
tf changeset /comment:"Этот комментарий гораздо лучше предыдущего." 1234
Далее приведен пример команды, которая обновляет примечания с именами экспертов по коду и безопасности, связанных с набором изменений 1234.
tf changeset /notes:"Code Reviewer"="C Davis";"Security Reviewer"="F Smith" 1234
Отмена набора изменений
Чтобы откатить набор изменений и удалить его с сервера управления исходным кодом, используется команда Tfpt rollback из комплекта Team Foundation Power Tool. В следующем примере производится откат набора изменений под номером 1234.
TFPT rollback /changeset:1234
Эта команда открывает окно Roll Back Changeset, в котором можно выбрать файлы из набора изменений для отката.
Дополнительные ресурсы
Чтобы обеспечить соответствие всего возвращаемого на сервер кода заданным стандартам программирования, используйте политики возврата после правки.
По умолчанию, доступны следующие политики:
Code Analysis Требует выполнения анализа кода перед возвратом.Test Policy Требует проведения тестов перед возвратом.Work Items Требует, чтобы с возвратом был связан один или несколько рабочих элементов.По умолчанию политика обеспечивает проведение проверки как управляемого, так и неуправляемого кода. В управляемом коде статически анализируется соответствие стандартным правилам проектирования, глобализации,
Чтобы настроить политику анализа кода при возврате после правки, выполните следующие действия:
Team Explorer щелкните правой кнопкой ваш командный проект, раскройте подменю Team Project Settings и выберите команду Source Control.Check-in Policy и Add.Check-in Policy выберите вариант Code Analysis и щелкните OK.Enforce Code Analysis For Managed Code укажите требуемые правила в списке Rule settings for Managed Code Analysis .OK.Важно! Хотя описанная процедура обеспечивает применение настроенной политики при каждом возврате файла исходного кода после правки, разработчики всегда могут перекрыть политику. Чтобы отслеживать перекрытие политики, следите за соответствующими событиями.
Вы вольны создать собственные политики возврата после правки, позволяющие задавать определенные стандарты качества в зависимости от конкретного проекта, например:
C#, чтобы подавить предупреждения документации XML.XML -документация.Чтобы создать надстройки пользовательских политик, которые будут отображаться в диалоговом окне Add Checkin Policy, используйте функции расширяемости из комплекта Visual Studio Team Foundation .
Дополнительные ресурсы
Чтобы перекрыть политику возврата после правки, задайте параметр Override policy failure and continue check-in в диалоговом окне Policy Failure. Перекрыть политику возврата после правки волен любой пользователь, обладающий разрешением на возврат файлов.
Чтобы проследить за перекрытием политики возврата после правки, воспользуйтесь службой событий Team Foundation .
Дополнительные ресурсы
Для отмены возврата файла используется команда rollback из комплекта Team Foundation Power Tools. Эта команда возвращает файл к его предыдущей версии. Команда rollback позволяет выполнить откат сразу всего набора изменений, но можно также выбирать для отката лишь некоторые файлы из набора. Это очень удобно, когда нужно отменить ошибочно возвращенное изменение файла или возвращенные изменения привели к серьезным конфликтам сборки.
Отмена возврата файла
\Program Files\Microsoft Team Founda-tion Server Power Tools.TFPT rollback filename.csПримечание Если вам известен номер набора изменений, содержащего правку, которую вы хотите отменить, укажите его в команде, как показано ниже:
TFPT rollback filename.cs /changeset:54
rollback запросит подтверждение на обновление рабочей области. Щелкните кнопку Yes в информационном окне Roll Back Changeset. После этого в рабочую область будут переданы файлы с сервера.Find Changeset. Введите критерий поиска или просто щелкните кнопку Find. Найдите и выделите набор изменений, содержащий правку, которую вы хотите отменить, и щелкните Roll Back. Откроется окно Roll Back Changeset.Roll Back.Примечание Если имя файла указать в командной строке, то из всего набора будет выбран только он.
Отменяя возврат после правки командой TFPT rollback, учитывайте следующие соображения:
TFPT определяет расположение рабочих областей следующими способами. Если вы указали путь к файлу в качестве аргумента, для поиска рабочей области используется он. Если вы не указали путь к файлам, в качестве рабочей области используется локальная папка, если для нее есть сопоставление. Чтобы гарантировать, что инструмент будет работать в нужной рабочей области, запустите команду из локально сопоставленной папки.rollback отложите ( shelve ) незавершенные изменения, которые хотите сохранить, а остальные отмените или запишите на сервер.Merge. Первоначально предпринимается попытка автоматического слияния. В случае неудачи для разрешения конфликта вызывается инструмент слияния. Если вы щелкнете кнопку Auto-Merge All, будет произведена попытка выполнить автоматическое слияние всех элементов, находящихся в списке слияния. Инструмент слияний не вызывается.Дополнительные ресурсы
Для создания пользовательской политики возврата после правки используется модель надстройки, предоставленная средой политики ( policy framework ).
Пользовательская политика создается для реализации ваших собственных правил, например, чтобы все пользователи при возврате после правки добавляли комментарии или соответствующим образом использовали регулярные выражения.
Надстройки используются как в процессе определения политики, так и в процессе ее оценки. Надстройки устанавливаются и как автономные утилиты, и как части отдельных приложений. Они регистрируются в среде политики, чтобы их можно было загружать по мере надобности.
Надстройка политики должна предоставлять следующие интерфейсы:
IPolicyDefinition Методы, используемые в процессе определения требований политики к командным проектам.IPolicyEvaluation Методы, используемые в процессе оценки соответствия требованиям политики во время возврата после правки. Принимают возвращаемое содержимое и анализируют его на предмет соответствия определенной политике.Вы можете упаковать несколько надстроек политик в один файл сборки. Единственное требование - реализовать надстройки как отдельные классы.
Примечание Данные интерфейсы отображены в классе PolicyBase. В качестве альтернативы применению интерфейсов IPolicyDefinition и IPolicyEvaluation вы можете использовать производный класс из PolicyBase.
Дополнительные ресурсы
Visual Studio Team Foundation Server " этого курса.TFS.Для синхронизации компьютера с сервером управления версиями используется команда tf get. С ее помощью вы легко синхронизируете свою работу с остальными разработчиками и всегда будете иметь дело с новейшими версиями файлов. Чтобы загрузить все файлы, а не только обновленные, запустите в окне командной строки Visual Studio 2005 следующую команду: tf get /all
При запуске этой команды перезапись всех записываемых локальных файлов, имеющихся на вашем компьютере, не производится. Если вы хотите перезаписать локальные записываемые файлы для полной синхронизации вашего компьютера с сервером, используйте ключ /force, как показано в примере: tf get /force
Эта команда перезаписывает все локальные записываемые файлы за исключением тех, для которых у вас есть незавершенные правки. Если у вас имеются незавершенные правки файла, которые вам хотелось бы сохранить, перед синхронизацией возвратите их на сервер или отложите командой shelve.
Чтобы провести синхронизацию из Visual Studio, выполните следующие действия:
Team Explorer дважды щелкните папку Source Control, правой кнопкой щелкните сервер или командный проект и выберите команду Get Specific Version.Overwrite writable files that are not checked out и Force get of file versions already in workspace.Type выбран вариант Latest Version и щелкните кнопку Get.Чтобы полностью синхронизировать компьютер с сервером управления версиями, не задавайте в Visual Studio параметр Get Latest Version. Эта команда загружает только те файлы, которых нет в вашей рабочей области, и не перезаписывает записываемые файлы, извлеченные в локальную папку. Таким образом, синхронизация компьютера с сервером фактически не выполняется.
Дополнительные ресурсы
Чтобы подготовить файл к редактированию, сначала следует получить его последнюю версию из системы управления исходным кодом Team Foundation Server, после чего извлечь файл для редактирования.
Подготовка файла для редактирования
Source Control Explorer выберите файл, щелкните его правой кнопкой мыши и выберите команду Get Latest Version. Это приведет к загрузке последней версии файла в рабочую область на вашем компьютере. Пока она будет доступна только для чтения.Check Out for Edit.None, чтобы разрешить другим пользователям извлекать и возвращать файл одновременно с вами.Как правило, рекомендуется использовать именно этот тип блокировки, так как большинство возникающих при этом конфликтов может быть разрешено автоматически.
Примечание Не путайте получение последней версии файла ( Get Latest Version ) и его извлечение для редактирования ( Check Out for Edit ). Это разные операции, и они должны выполняться отдельно. В этом TFS отличается от Microsoft Visual SourceSafe.
Выбирая тип блокировки, учитывайте следующие соображения:
None позволяет избежать задержек, связанных с невозможностью одновременной работы над одним и тем же файлом.Check Out, вы лишаете других пользователей возможность извлекать и возвращать файл. Это фактический запрет на редактирование файла, который может привести к замедлению разработки. При этом у вас появляется возможность применять изменения к БД управления исходным кодом, не опасаясь изменений, сделанных другими пользователями.Check In позволяет другим пользователям извлекать файл для редактирования, но не разрешает возвращать его. Этот вариант также гарантирует вам бесконфликтное возвращение ваших правок.Дополнительные ресурсы
Если у вас имеется исходный код, используемый в нескольких командных проектах, вы вольны управлять им из проекта команды-владельца или создать командный проект специально для общего исходного кода.
Для разработчиков, использующих общий исходный код, существует два варианта действий:
Установка ссылки на код из общего расположения
В проектах, использующих общий код, можно создать сопоставление между общим расположением и рабочими областями на клиентских компьютерах. Конфигурация, объединяющая исходный код в общей папке с командными проектами, создается на стороне клиентов.
Преимущество этого способа состоит в том, что изменения, вносимые в общий исходный код, переносятся при каждом извлечении новейшего исходного кода в рабочую область. Допустим, у вас есть два командных проекта - Client и Shared Code. В проекте Shared Code расположен общий исходный код. Чтобы установить ссылки на код в общем расположении, эти проекты используют единый путь на диске клиента, как показано в примере:
c:\TestProject\Clientc:\TestProject\Shared CodeВ обоих проектах имеются сопоставления с этими локальными путями.
| Папка системы управления исходным кодом | Локальная папка |
|---|---|
$/Client |
c:\TestProject\Client |
$/Shared Code |
c:\TestProject\Shared Code |
Дополнительную информацию вы найдете в статье "Working with multiple team projects in Team Build" по адресу http://blogs.msdn.com/manishagar-wal/archive/2005/12/22/506635.aspx.
Ветвление общего кода
Из проектов, использующих общий код, можно выполнить ветвление из общего расположения. Конфигурация, объединяющая исходный код в общей папке с командными проектами, создается на стороне сервера.
Отличие от предыдущего варианта состоит в том, что изменения общего исходного кода переносятся в процессе слияния ветвей. Таким образом, принятие решения о переносе изменений из общего исходного кода принимается более явным образом.
Допустим, у вас есть два командных проекта - Client и Shared Code. В проекте Shared Code расположен общий исходный код. Для ветвления кода из общего расположения выполните следующие действия:
Source Control щелкните правой кнопкой корневую папку проекта Shared Code.Branch.Branch укажите в поле Target корневую папку командного проекта Client. Щелкните OK.Дополнительные ресурсы
Управление общими двоичными файлами очень похоже на управление общим исходным кодом: главное - решить, где вы собираетесь хранить двоичные файлы и как будет организован общий доступ к ним.
Существуют следующие варианты хранения общих двоичных файлов:
Ветвление общих двоичных файлов в проект
Source Control правой кнопкой щелкните корневую папку проекта с общими двоичными файлами.Branch.Branch укажите в поле Target корневую папку клиентского командного проекта. Щелкните OK.Как при использовании рабочей области, так и при использовании ветвления следует соблюдать соглашения об именах, позволяющие точно определять расположение общих двоичных файлов в проекте, например:
Main.Source - код проекта.Lib - общие двоичные файлы.Дополнительные ресурсы
Как правило, URL веб-службы в рабочей среде отличается от ее URL в средах разработки и тестирования. Чтобы облегчить управление веб-службами, значение URL нужно указывать в пользовательском файле конфигурации, который может изменяться отдельными разработчиками и тестировщика-ми, не затрагивая главный конфигурационный файл App.config. Для этого следует присвоить свойству URL Behavior ссылки на веб-службу значение Dynamic. Ссылайтесь на URL веб-службы при помощи пользовательского файла конфигурации.
По умолчанию при добавлении веб-ссылки Visual Studio присваивает указанному свойству значение Dynamic.
Проверка значения свойства URL Behavior
Solution Explorer разверните список веб-ссылок.URL Behavior каждой ссылки присвоено значение Dynamic.Указание URL веб-службы в пользовательском файле конфигурации
При первом добавлении веб-ссылки файл App.config выглядит примерно так:
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.
ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral,
PublicK eyToken=b77a5c561934e089" >
<section name=" SomeService.Properties.Settings"
type="System. Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections> <applicationSettings>
<YourProject.Properties.Settings>
<setting name="SomeService_ localhost _Service" serializeAs="String">
<value>http://localhost/someservice/Service.asmx</value> </setting> </
YourProject.Properties.Settings>
</applicationSettings>
</configuration>
В этом файле есть конфигурационный новый раздел с адресом веб-службы, заданным Visual Studio при создании этого прокси.
Создание файла User.config
Solution Explorer щелкните правой кнопкой проект, содержащий ссылку на веб-службу, раскройте подменю Add и выберите команду New Item.Application Configuration File , измените имя на User.config и щелкните Add.App.con-fig в файл User.config. Этот файл должен содержать только параметры, которые изменяются во время выполнения. Удалите директиву <?xml> и элемент <configuration> , если они имеются, как показано в примере:<YourProject.Properties.Settings> <setting name="SomeService_localhost_Service" serializeAs="String"> <value>http://localhost/someservice/Service.asmx</value> </setting> lt;/YourProject.Properties.Settings>
Solution Explorer щелкните правой кнопкой файл User.config, выберите команду Properties и присвойте свойству Copy to Output Directory значение Copy if newer.Каждый разработчик задает в файле User.config ссылку на нужный ему URL веб-службы.
Создание в файле App.config ссылки на файл User.config при доступе к URL веб-службы
<YourProject.Properties.Settings> главного файла конфигурации приложения добавьте атрибут configSource="user.config" . При достижении <YourProject.Properties.Settings> . Теперь файл App.config должен выглядеть примерно так:<?xml version="1.0" encoding="utf-8" ?>
<configuration> <configSections>
<sectionGroup name="applicationSettings" type="System.
Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089" >
<section name="SomeService.Properties.Settings" type="System. Configuration.ClientSettingsSection,
System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="fal se" />
</sectionGroup> </configSections>
<applicationSettings>
<YourProject.Properties.Settings configSource="user.config">
</YourProject.Properties.Settings>
</applicationSettings>
</configuration>
В предыдущем примере элемент YourProject представляет собой имя проекта, содержащего ссылку на веб-службу Убедитесь, что элемент <SomeService.Properties.Service> в файле App.config пуст.
Учитывайте следующие соображения:
User.config. Затем щелкните файл в окне Solution Explorer правой кнопкой и выберите команду Under Pending Changes, чтобы не переносить файл в систему управления исходным кодом. Теперь каждый разработчик (и тестовая команда) сможет привязаться к конкретному URL с помощью собственного файла User.config.User. config, например, для тестирования или производства. Этими файлами должны распоряжаться пользователи, ответственные за управление соответствующими средами. Такие файлы User.config, используемые при испытаниях и в производстве, не должны храниться в составе проектов веб-служб - они должны находиться в других областях системы управления исходным кодом.User.config следует хранить в системе управления исходным кодом. В нем может содержаться либо только корневой элемент (не элемент <setting> ), либо указание на стандартное положение веб-службы. Файл User.config нужен для работы системы конфигурирования. Важно понимать, что при использовании этого механизма файл User.config обязательно должен быть в наличии. Кто-то из команды должен отвечать за правильную работу среды во время создания сборок для рабочих выпусков и для тестирования. При сборке соответствующий файл User.config должен быть извлечен из системы управления исходным кодом и скопирован в определенное расположение, чтобы система MSBuild могла его найти.Дополнительные ресурсы
Далее объясняется, как хранить и устанавливать ссылку на строку подключения БД в пользовательском файле конфигурации.
Хранение строк подключения БД в пользовательском файле конфигурации
configSource="user.config" в элемент <connectionStrings>, как показанов примере:> <configuration> <connectionStrings configSource="user.config"/> </configuration>
User.config (расположенный в той же папке, что и главный файл онфигурации приложения) и добавьте в него такой же элемент <connectionStrings> . Обратите внимание, что приведенная ниже строка подключения ссылается на локальную базу данных.<configuration>
<connectionStrings>
<add name="DBConnStr" connectionString="server=localhost;
Integrate d Security=SSPI;database=Accounts"/>
</connectionStrings>
</configuration>
onnectionStrings класса System.Configuration.ConfigurationManager. приложении Win Form вы должны явно добавить ссылку на System. Configuration.dll.using System.Configuration;
private string GetDBaseConnectionString()
{
return ConfigurationManager.ConnectionStrings["DBConnStr"]. ConnectionString;
}
User.config устанавливается вместе с кодом приложения. Для этого в окне Solution Explorer щелкните правой кнопкой мыши файл User.config, выберите команду Properties и присвойте свойству Copy to Output Directory значение Copy if newer.Не добавляйте пользовательский файл конфигурации в систему управления исходным кодом. При этом каждый разработчик (и тестовая команда) сможет задавать строку подключения с помощью собственного файла User.config. Система управления исходным кодом может содержать файлы User.config, например, для тестирования или производства. Этими файлами должны распоряжаться пользователи, ответственные за управление соответствующими средами. Такие файлы User.config, используемые при испытаниях и в производстве, не должны храниться в составе проектов БД - они должны находиться в других областях системы управления исходным кодом. Файл User.config нужен для работы системы конфигурирования.
Совет По умолчанию во время добавления решения файл User.config автоматически добавляется в систему управления исходным кодом. Чтобы избежать этого, при первом возврате файлов после правки сбросьте флажок User.config. Чтобы гарантировать непопадание этого файла в систему управления исходным кодом, щелкните его правой кнопкой в окне Solution Explorer и выберите команду Under Pending Changes.
Важно понимать, что при использовании этого механизма файл User. config обязательно должен быть в наличии. Кто-то из команды должен отвечать за правильную работу среды во время создания сборок для рабочих выпусков и для тестирования. При сборке соответствующий файл User.config должен быть извлечен из системы управления исходным кодом и скопирован в определенное расположение, чтобы система MSBuild могла его найти.
Дополнительные ресурсы
TFS через Интернет.TFS -прокси.Доступ к TFS через Интернет можно организовать одним из трех способов:
VPN );TFS через обратный прокси, например, Microsoft Internet Security and Acceleration (ISA) ;TFS в экстрасети.Используйте первый способ, если вы и так обеспечиваете поддержку удаленных пользователей при помощи VPN. Он относительно прост в реализации, обладает понятной системой безопасности, обеспечивает удаленный доступ ко всем функциям TFS и позволяет использовать для повышения производительности TFS Proxy При таком способе доступа TFS находится во внутренней сети, а внешние пользователи получают к нему доступ по VPN. Внутренние пользователи обладают прямым доступом к TFS.
Если поддержка удаленных пользователей осуществляется без доступа к VPN или к домену, используйте сценарий с обратным прокси. Этот способ сложнее осуществить, однако он позволяет удаленным пользователям получать доступ к TFS, расположенному во внутренней сети, без использования VPN. В этой реализации TFS находится во внутренней сети, а один или несколько обратных прокси-серверов, например, , доставляют на TFS запросы клиентов из Интернета.
Сценарий с экстрасетью подходит в ситуациях, когда вы поддерживаете достаточно большое количество удаленных пользователей, например, сайт разработки какого-либо сообщества. При этом удаленные пользователи работают в специально предназначенной для них реализации TFS. Данный подход обеспечивает максимальное разделение между удаленными пользователями и внутренними ресурсами сети. При этом доступ к TFS имеют только внешние клиенты, а сам TFS расположен в экстрасети за пределами брандмауэра.
Если у вас есть удаленный офис с несколькими клиентами, осуществляющими доступ к Team Foundation Server через Интернет, установите в удаленном офисе Team Foundation Server Proxy. Это увеличит производительность за счет кеширования файлов исходного кода на прокси-сервере. Если вы поддерживаете одного клиента, удаленно подключающегося к TFS, настройте его на подключение непосредственно к TFS.
Дополнительные ресурсы
TFS содержатся в лекции 17 этого курса.Установите и настройте Team Foundation Server Proxy в удаленном офисе. Это позволит повысить производительность за счет кеширования файлов системы управления исходным кодом на прокси-сервере.
Чтобы настроить и оптимизировать производительность TFS -прокси, выполните следующие действия:
Убедитесь, что функция кеширования включена, и проверьте счетчики производительности кеша. Чтобы иметь представление о производительности прокси, счетчики производительности (устанавливаемые по умолчанию) и журналы регистрации событий (ошибки и предупреждения) на рокси-сервере следует проверять периодически.
Примечание Прокси TFS сохраняет статистику производительности кеша в XML -файле ProxyStatistics.xml. Вы можете изменить интервал, с которым происходит сохранение статистики. Файл ProxyStatistics.xml расположен в подпапке App_Data папки установки прокси.
executionTimeout в файле Web.config. Значение по умолчанию равно одному часу - <httpRuntime executionTimeout="3600"/> .Дополнительные ресурсы
TFS содержатся в лекции17 этого курса.Visual SourceSafe.Для переноса исходного кода из выполните следующие действия.
Примечание Для выполнения этих действий нужно быть членом группы администраторов Team Foundation.
VSS . Приготовьтесь к переходу, создав резервные копии базы данных VSS и убедившись в том, что файлы возвращены в систему. Запустите инструмент Visual SourceSafe Analyze для выявления и разрешения конфликтов целостности данных в существующей БД.Анализ проектов. Запустите конвертер (инструмент командной строки VSSConverter.exe ), передав ему с ключом analyze имя XML -файла, содержащего необходимые параметры, как показано в примере:
VSSConverter analyze conversionsettings.xmlПример
XML -файла параметров:<?xml version="1.0" encoding="utf-8"?>
<SourceControlConverter>
<ConverterSpecificSetting> <Source name="VSS">
<VSSDatabase name="c:\VSSDatabase"></VSSDatabase>
</Source> <ProjectMap>
<Project Source="$/MyFirstProject">
</Project> <Project Source="$/MySecondProject"></Project>
</ProjectMap> </ConverterSpecificSetting>
</SourceControlConverter>
Файл параметров содержит имя БД . В атрибуте name задается имя папки, содержащей .ini -файл хранилища исходного кода. Элементы <Project> определяют пути к проектам в БД , которые вы собираетесь преобразовать. Для миграции всей БД введите <Project Source="$/"></Project> .
Команда analize инструмента VssConverter.exe создает файл usermap.xml. Добавив сопоставления в этот файл, вы можете изменить имена, связанные с историей версий и другие, с регистрационных имен на регистрационные имена TFS Windows.
Перемещение проектов. Выберите папки, которые хотите перенести, и запустите инструмент VSSConverter.exe с аргументом migrate, как показано в примере:
VSSConverter migrate conversionsettings.xml
Вы снова передаете команде XML -файл параметров настройки, но на этот раз с двумя важными дополнениями:
<?xml version="1.0" encoding="utf-8"?>
<SourceControlConverter> <ConverterSpecificSetting>
<Source name="VSS">
<VSSDatabase name="c:\VSSDatabase">
</VSSDatabase> </Source> <ProjectMap>
<Project Source="$/MyFirstProject"
Destination="$/MyTeam_ ProjectOne"></Project>
<Project Source="$/MySecondProject"
Destination="$/MyTeam_ ProjectTwo"></Project> </ProjectMap>
</ConverterSpecificSetting>
<Settings>
<TeamFoundationServer name="YourTFSServerName"
port="PortNumber" protocol="http">
</TeamFoundationServer>
</Settings>
</SourceControlConverter>
Обратите внимание на дополнительный атрибут Destination в элементах <Project> . Значение этого атрибута указывает на командный проект TFS (созданный вами заранее). Элемент <Settings> содержит подробности подключения уровня приложений TFS.
Дополнительные ресурсы
Вы можете вручную экспортировать файлы из прежней системы управления версиями, а затем импортировать их в Team Foundation Server. Чтобы сохранить историю и другие атрибуты системы, воспользуйтесь объектной моделью Team Foundation Server, чтобы написать собственный инструмент миграции.
В настоящий момент корпорация Microsoft ведет работу по созданию конвертера ClearCase. О выпуске конвертера будет объявлено дополнительно в блоге TFS Migration по адресу http://blogs.msdn.com/tfs_migration. Существует также конвертер, созданный компанией , совместимый с GNU и Visual SourceSafe (.
Дополнительные ресурсы
Чтобы спланировать структуру проекта, рассмотрите типичные стратегии организации проектов и выберите ту, что максимально подходит для вас, исходя из размеров предприятия, серверных ограничений и принятых правил работы. Проект олицетворяет самый крупный блок работы, который может существовать в вашей организации. Предпочтение следует отдавать одиночным проектам. Несколько проектов нужно использовать, только имея на то серьезные основания, например, изменения в команде или наличие значительных различий между выпусками, когда вы не хотите переносить в новый выпуск нежелательные рабочие элементы (ошибки и т. п.). Основанием для создания нескольких проектов может также стать изменение в шаблоне процесса.
Основным преимуществом одного проекта перед несколькими проекта и является упрощение процедуры переноса требований, функций, сцена иев и ошибок из выпуска в выпуск.
Основные вопросы, которые вам предстоит ответить, таковы:
Далее описаны типичные структуры проектов.
Один проект на все приложение
Используется один проект, содержащий все версии приложения. Внутри проекта для отдельных выпусков создаются ветви.
TFS.Один проект на один выпуск
Создается новый проект для каждой версии вашего приложения.
TFS из одного проекта в другой. Рабочие элементы можно копировать в другой проект только по одному. Если вам захочется переместить наборы элементов, придется делать это вручную или написать собственную утилиту.TFS.Выбирая стратегию, имейте в виду следующее:
Team Foundation Server способна вместить около 500 проектов icrosoft Solution Framework (MSF) , основанных на шаблоне процесса gile Software Development (MSF Agile) , или 250 проектов на шаблоне процесса MSF CMMI. Создавая собственный процесс или настраивая существующий, помните, что на масштабируемость сервера оказывает огромное влияние схема рабочего элемента. Чем сложнее схема, там меньше проектов сможет поддерживать сервер.Дополнительные ресурсы
Структура дерева исходного кода состоит из комбинации структуры папок, файлов и ветвей. Внутри главной ветви свою работоспособность в самых различных по размеру командах доказала следующая структура папок и файлов:
Main - контейнер для всех объектов, необходимых для передачи проекта аказчику.Source - контейнер для всех объектов, необходимых для выполнения борки.Code - контейнер для исходного кода.Shared Code - контейнер для исходного кода, используемого совместно с другими проектами.Unit Tests - контейнер для модульных тестов.Lib - контейнер для двоичных зависимостей.Docs - контейнер для документации, поставляющейся с проектом.Installer - контейнер для исходного кода и двоичных файлов программы установки.Tests - контейнер, содержащий результаты испытаний, проводимых тестовой командой.При ветвлении папки Main структура папок и файлов будет скопирована в новую ветвь, например:
Development - ветвь разработки.Source - контейнер для всех объектов, необходимых для выполнения борки.Code - контейнер для исходного кода.Shared Code - контейнер для исходного кода, используемого совместно с другими проектами.Unit Tests - контейнер для модульных тестов.Lib - контейнер для двоичных зависимостей.Main - ветвь интеграции.Source - контейнер для всех объектов, необходимых для выполнения борки.Code - контейнер для исходного кода.Shared Code - контейнер для исходного кода, используемого совместно с другими проектами.Unit Tests - контейнер для модульных тестов.Lib - контейнер для двоичных зависимостей.Docs - контейнер для документации, поставляющейся с проектом.Installer - контейнер для исходного кода и двоичных файлов программы установки.Tests - контейнер, содержащий результаты испытаний, проводимых тестовой командой.Для отображения файлов и папок системы управления исходным кодом, расположенных на сервере, определите на вашем локальном диске сопоставление рабочей области.
Создание сопоставления рабочей области для проекта, которого еще нет на жестком диске
Source Control Explorer выделите корневую папку исходного кода.Get Latest Version.Изменение сопоставления рабочей области проекта, уже имеющегося на жестком диске
File команды Source Control и Workspaces.Manage Workspaces добавьте, удалите или отредактируйте существующую рабочую область.Просмотр существующего сопоставления рабочей области
Source Control Explorer выделите папку с исходным кодом.Properties. В разделе Local Name будет отображено сопоставление рабочей области на локальном диске.Создавая сопоставления рабочей области, используйте следующие рекомендации:
$/ MyTeamProject ) с папкой на локальном диске, имеющей то же имя, например, C:\TeamProjects. Вся структура локальной папки создается автоматически и будет в точности повторять структуру в системе управления исходным кодом.$/MyTeam-Project ) с одной и той же папкой на локальном компьютере. Создавайте сопоставления в папке Мои документы (хотя это удлиняет путь) или разработайте соглашение об именах для папок на локальном компьютере (например, C:\TeamProjects\User1, C:\TeampProjects\User2 и т. д.).Дополнительные ресурсы
Разработчик волен создать две рабочие области: одна из них содержит ссылки на файлы и папки, над которыми работает остальная команда, а вторая - файлы и папки, которые он хочет изолировать. Изолирование может понадобиться, если вы хотите работать с файлами, которые параллельно изменяются где-то еще. Например, им можно пользоваться для работы над рискованными изменениями или при выполнении обзора кода.
Создание второй рабочей области
Source Control Explorer щелкните раскрывающийся список Workpace и выберите команду Workspaces.Manage Workspaces щелкните кнопку Add.Add Workspace введите имя новой рабочей области, например, ИзолированнаяРабота. Добавьте комментарий, напоминающий о цели создания рабочей области.Working folders задайте статус рабочего места Active, определите папку в системе управления исходным кодом, которая будет включена в рабочую область. Это может быть корневая папка командного проекта или любая вложенная папка. Задайте путь на локальном компьютере, в котором будут находиться файлы рабочей области.OK и Close, чтобы создать изолированную рабочую область.Извлечение актуального набора исходного кода для работы в изолированной рабочей области
Source Control Explorer убедитесь, что в раскрывающееся списке Workspace выбрано имя изолированной рабочей области.Get Latest Version.При этом будет выполнено копирование структуры папок и актуального набора файлов с сервера управления исходным кодом в папку на локальном компьютере, отображенную в новой рабочей области.
Дополнительные ресурсы
TFS.Для повышения безопасности канала между рабочей станцией разработчика и TFS используйте протоколы HTTPS и SSL. Настройте TFS так, чтобы использовались подключения только по этим протоколам, но не по HTTP. Для этого сначала следует разрешить протоколы HTTPS и SSL, а затем предпринять дополнительные шаги, чтобы сделать эти протоколы обязательными.
HTTPS и SSL шифруют сетевой трафик между TFS и клиентами Team Foundation, которым необходим доступ к веб-ресурсам Team Foundation Server, включая порталы проектов, отчеты и рабочие элементы.
Дополнительные ресурсы
Чтобы создать резервную копию незавершенных изменений на сервере, создайте отложенные редакции файлов, которые еще не готовы возвратить в систему. При этом исходный код выгружается на сервер, но возврат неоконченной работы, которая может привести к нестабильности сборки, не производится.
Выгрузка отложенных правок на сервер
Solution Explorer щелкните правой кнопкой решение и выберите команду View Pending Changes.Shelve.Shelve.Восстановление работы
File раскройте подменю Source Control и выберите команду Unshelve ).Unshelve.Система Team Foundation Server восстановит все отложенные правки в целевую рабочую область в виде незавершенных изменений, если они не вступают в конфликт с уже имеющимися в рабочей области незавершенными изменениями.
Дополнительные ресурсы
Чтобы отложить редакцию исходного кода для передачи другому члену команды, выполните операцию Get Latest, синхронизовав свою рабочую область с последней версией на сервере. Затем произведите сборку приложения, чтобы убедиться в его компилируемости. Выгрузите исходный код в качестве отложенной правки при помощи обозревателя Source Control. Члену команды, которому предназначается код, остается только загрузить его с помощью команды Unshelve.
Удобно использовать отложенные правки, когда у вас есть неоконченная работа, завершать которую предстоит другому члену команды. Создание отложенной правки облегчает передачу изменений. Синхронизируя последнюю версию кода, вы получаете возможность получить изменения файлов, сделанные за пределами вашей рабочей области.
Выгрузка набора отложенных правок
Source Control Explorer и выберите команду Shelve Pending Changes.Shelve - Source Files в поле Shelve name введите имя набора отложенных правок, например, shelvetest.Shelve.Файлы и папки копируются на сервер управления исходным кодом, откуда их могут извлечь другие члены команды.
При извлечении набора отложенных правок другим членом команды TFS восстанавливает все отложенные правки в целевую рабочую область в качестве незавершенных изменений, если эти правки не вступают в конфликт с незавершенными изменениями, уже имеющимися в рабочей области.
Извлечение набора отложенных правок
File Visual Studio 200 5 раскройте подменю Source Control и выберите команду Unshelve.Owner name введите имя создателя набора отложенных правок (например, ADVENTUREWORKS\JuanGo или просто juango ) и щелкните Find.Results выделите набор отложенных правок, который хотите извлечь в свою рабочую область, и щелкните Details.TFS, сбросьте флажок Preserve shelveset on server.Restore work items and check-in notes, если не хотите вместе с набором правок восстанавливать рабочие элементы и заметки о возврате после правки.Details, выберите набор отложенных едакций или отдельные элементы, которые хотите извлечь в свою рабочую область, и щелкните Unshelve.Дополнительные ресурсы
В этом разделе
Администрирование
Политики возврата после правки
Непрерывная интеграция
Настройка
release/debug ).Развертывание
Общие вопросы
Team Build выполнять сборку и развертывание приложений ASP.NET.Team Build выполнять сборку приложений на основе Microsoft® .NET 1.1.Team Build выполнять сборку проектов пакетов установки и развертывания.Проекты
Отчеты
Плановые сборки
Разработка через тестирование
Обеспечение безопасности сервера сборки
Microsoft Visual Studio® 2005 Team Foundation Server (TFS) .Build Services командного проекта.Обеспечить более высокую безопасность Team Foundation Server позволит установка сервера сборки на специальном компьютере, отдельно от уровня приложений или уровня данных. Для выполнения определенных этапов развертывания или сборки могут потребоваться дополнительные более широкие права доступа. Например, чтобы создать виртуальную папку для развертывания веб-приложения на сервере сборки, необходимо обладать правами администратора. То есть, учетная запись Microsoft Windows®, от имени которой выполняется сборка, должна обладать такими полномочиями. Если компьютер, на котором выполняется сборка, используется еще и для уровня приложений, это может представлять угрозу безопасности. Аналогично, если на сервере сборки размещается также и уровень данных, учетная запись, используемая для сборки, имеет доступ к базам данных этого уровня и может изменять их.
Примечание Из соображений безопасности нельзя добавлять учетную запись, от имени которой выполняется сборка, в группу SERVER\ Service Accounts. Члены этой группы обладают на TFS полными административными правами.
Дополнительные ресурсы
Для удаления сборок используется инструмент командной строки myproject build20070606.4
Примечание В TFS 2008 сборки можно удалять из Visual Studio. В Build Explorer выберите сборку в списке завершенных сборок, щелкните ее правой кнопкой мыши и в контекстном меню выберите Delete.
Дополнительные ресурсы
Типы сборки нельзя удалить, используя Team Explorer. Это можно сделать только из системы управления исходным кодом.
Удаление типа сборки
Source Control Explorer.TeamBuildTypes.Team Build, представляющую тип сборки, который необходимо удалить, и выберите Delete.Team Build и выберите Check In Pending Changes.Team Explorer.Team Builds и выберите Refresh.Team Builds и убедитесь, что тип сборки удален.Примечание Чтобы удалить описание сборки в TFS 2008, щелкните правой кнопкой описание сборки в узле Builds обозревателя Team Explorer и выберите Delete. Файлы tfsbuild.proj и tfsbuild.rsp необходимо удалить из системы управления исходным кодом отдельно.
Дополнительные ресурсы
Диалоговое окно Check In позволяет связать рабочие элементы с возвратом после правки. Эти же рабочие элементы будут автоматически связаны со следующей сборкой.
Связывание рабочего элемента со сборкой
Check In щелкните Work Items.Team Build внесет этот набор изменений в список наборов, связанных со сборкой, и свяжет выбранный рабочий элемент с этим набором изменений.Дополнительные ресурсы
Для повышения качества возвращаемых изменений следует использовать анализ кода в сочетании с политиками тестирования. Например, прежде чем разрешить возврат кода в систему управления версиями, при помощи готовой политики тестирования убедитесь, что он проходит определенные тесты. Также можно настроить политику анализа кода, которая обеспечит его соответствие определенным стандартам качества и правилам безопасности, производительности, переносимости, удобства обслуживания и надежности.
Включение политики анализа кода при возврате изменений
Team Explorer щелкните правой кнопкой мыши свой командный проект, выберите Team Project Settings и щелкните Source Control.Check-in Policy.Add. Затем выберите и настройте политики анализа кода и тестирования.Дополнительные ресурсы
Visual Studio Team Foundation Server " этого курса.Политики возврата изменений позволяют обеспечить связывание каждого возврата изменений с рабочим элементом. Чтобы связать рабочие элементы с возвратом изменений, разработчики используют диалоговое окно Check In. Эти рабочие элементы будут также автоматически связаны со следующей сборкой.
Включение политики связи возврата изменений с рабочими элементами
Team Explorer щелкните правой кнопкой мыши свой командный проект, выберите Team Project Settings и щелкните Source Control.Check-in Policy.Add. Выберите и настройте политику возврата Work Item.Дополнительные ресурсы
Visual Studio Team Foundation Server " этого курса.Хотя Team Foundation Server 2005 не содержит встроенного средства для непрерывной интеграции, в нем есть все необходимое для реализации собственного решения непрерывной сборки.
Создание решения непрерывной интеграции
Сконфигурируйте надстройку для непрерывной интеграции
Убедитесь, что виртуальная корневая папка веб-приложения непрерывной интеграции находится в пуле приложений TFSAppPool. Обновите файл Web.config веб-приложения непрерывной интеграции, чтобы оно работало с вашим сервером и сборкой, добавив следующий параметр:
<add key="1" value="TeamServer=http://TFSRTM:8080; TeamProjectName=Advent ureWorks;BuildType=Test Build"/>
Подпишитесь на событие CheckinEvent Чтобы подписаться на событие возврата изменений, используйте инструмент BisSubscribe.exe и следующую командную строку:
Bissubscribe /eventType CheckinEvent /address http://TFSRTM:8080/ci/no-tify.asmx /deliveryType Soap /domain http://TFSRTM:8080
Project Alerts и установите флажок уведомления Abuild completes.Подробнее - в разделе "Как настроить непрерывную интеграцию в Visual Studio Team Foundation Server " этого курса.
Примечание Пользователи TFS 2008 могут настраивать процесс непрерывной интеграции из Visual Studio. Для редактирования типа сборки необходимо щелкнуть правой кнопкой мыши описание сборки в узле Builds обозревателя Team Explorer, выбрать Edit Build Definition, щелкнуть Trigger и задать активацию сборок по событию возврата после правки.
Дополнительные ресурсы
Visual Studio Team Foundation Server " этого курса.Выполнение сборки после каждого возврата - самая простая стратегия непрерывной интеграции, которая обычно обеспечивает самую быструю реакцию. Однако, если возврат после правки производится достаточно часто, она приводит к перегрузке сервера сборок. В этом случае вам следует использовать другой подход, при котором сборка производится после определенного числа возвратов после правки или по истечении определенного времени. Чтобы решить, нужно ли вам использовать скользящую сборку, выясните следующее:
Team Build в минутах;Если длительность сборки больше среднего интервала между возвратами после правки, сборки будут выполняться непрерывно: одна сборка еще не будет завершена, когда уже произойдет следующий возврат после правки, инициирующий следующую сборку. Если возвраты после правки производятся до завершения предшествующей сборки, это негативно отразится на производительности сервера сборок и заблокирует запуск других сборок (например, сборок по расписанию). Определите промежуток времени, в течение которого возвраты после правки производятся особенно часто, и выясните, будет ли непрерывная интеграция оказывать влияние на сборки по расписанию и другие важные командные сборки.
Дополнительные ресурсы
Важно определить интервал скользящей сборки, чтобы обеспечить эффективность процесса. Если интервал между сборками превышает время, за которое выполняется одна сборка, в промежутках между скользящими сборками сервер будет доступен для сборок других типов.
Чтобы определить идеальный интервал времени скользящей сборки, разделите среднюю частоту возвратов после правки на длительность сборки. Например, если сборка занимает 10 минут, а возвраты после правки происходят в среднем раз в 5 минут, можно задать выполнение сборки после двух возвратов после правки, а для времени ожидания выбрать значение 10 минут. Это гарантирует завершение одной сборки до начала следующей. Если нагрузка на сервер сборки возросла, увеличьте эти значения.
Дополнительные ресурсы
release/debug ).Чтобы изменить номер сборки в скомпилированных файлах сборки, необходимо сгенерировать новый номер сборки и записать его в исходный файл assemblyinfo.
Чтобы номер сборки правильно отображался в интерфейсе Team Build, необходимо переопределить свойство $(BuildNumber) цели BuildNumber-Override.
$(BuildNumber) в цели BuildNumberOverride.Переопределите цель BeforeCompile для записи файла AssemblyInfo.cs или .vb.
Пример
<Target Name="BuildNumberOverrideTarget">
<Message Importance="High" Text="$(BuildNumber)" />
<ConvertTFSBuildNumberToSolutionBuildNumber
MajorAndMinorVersion="1.0"
TFSBuildNumber="$(BuildNumber)"
TFSLastBuildNumber="$(LastBuildNumber)">
<Output TaskParameter="SolutionBuildNumber"
PropertyName="SolutionBui ldNumber" />
<Output TaskParameter="TFSBuildNumber"
PropertyName="BuildNumber" />
</ConvertTFSBuildNumberToSolutionBuildNumber>
<Message Importance="High" Text="$(SolutionBuildNumber)" />
<Message Importance="High" Text="$(BuildNumber)" />
</Target>
<Target Name="BeforeCompile">
<Message Importance="High" Text="$(SolutionBuildNumber)" />
<CreateItem Include="$(SolutionRoot)\**\AssemblyInfo.cs">
<Output TaskParameter="Include" ItemName="AssemblyInfoFiles"/>
</CreateItem>
<CreateItem Include="$(SolutionRoot)\**\AssemblyInfo.vb">
<Output TaskParameter="Include" ItemName="AssemblyInfoFiles"/>
</CreateItem> <RewriteFileVersions
AssemblyInfoFiles="@(AssemblyInfoFiles)"
AssemblyVersionNumber="$(SolutionBuildNumber)"
AssemblyFileVersionNumber="$(SolutionBuildNumber)"
AssemblyInformationalVersionNumber="$(SolutionBuildNumber)" />
</Target>
В файле сопоставления рабочей области определены папки системы управления исходным кодом, извлекаемые сервером сборки. Для выполнения сборки не всегда требуется извлекать из системы все файлы. Чтобы ограничить количество включаемых папок, измените описание рабочей области или скройте ненужные файлы, чтобы они не извлекались в ходе сборки.
Например, по умолчанию новый проект сопоставляется с папкой $/Team-Project. Если все файлы исходных кодов находятся в папке $/TeamProject/ foo/bar/foobar/sources, вам следует сопоставлять только эту папку.
Сокрытие папки
WorkspaceMapping.xml.Верните файл WorkspaceMapping.xml в систему управления исходным кодом. Файл WorkspaceMapping.xml file выглядит следующим образом:
<Mappings> <InternalMapping ServerItem="$/MyTeamProject" LocalItem="c:\projects\ teamproject" Type="Map" /> <InternalMapping ServerItem="$/MyTeamProject/documentation" Type="Cloak" /> </Mappings>
Примечание Пользователи TFS 2008 могут настраивать сопоставление рабочей области прямо из Visual Studio. Для редактирования типа сборки необходимо щелкнуть правой кнопкой описание сборки в узле Builds обозревателя Team Explorer, выбрать Edit Build Definition, щелкнуть Workspace и редактировать сопоставления рабочих областей. Сопоставления рабочих областей в WorkspaceMapping.xml более не хранятся.
Дополнительные ресурсы
Team Build не поддерживает сборку решений, объединяющих несколько командных проектов. Осуществить сборку таких решений можно, настроив файл TFSBuild.proj. Тогда при сборке необходимый код других проектов будет извлекаться непосредственно из системы управления исходным кодом. Чтобы выполнить сборку проекта, имеющего зависимости от другого командного проекта, необходимо поместить исходный код или сборки этого проекта в рабочую область на вашем сервере сборки, отредактировав файл TFSBuild.proj. Добавьте в него сборку или ссылку на решение и переопределите событие BeforeGet для извлечения сборок или исходных файлов из всех командных проектов, от которых зависит ваш проект.
Сборка проекта, зависящего от другого командного проекта
Source Control Explorer извлеките для редактирования сценарий TFSBuild.proj.В разделе PropertyGroup (группа свойств) добавьте следующие параметры:
<!-- должны находиться под PropertyGroup --> <TfCommand>$(TeamBuildRefPath)\..\tf.exe</TfCommand> <SkipInitializeWorkspace>true</SkipInitializeWorkspace>
Параметр SkipInitializeWorkSpace позволяет пропустить вызов задач по умолчанию для удаления и воссоздания рабочей области на компьютере сборки. Это новое свойство используется в специальной цели BeforeGet (см. ниже).
Добавьте следующие параметры в элементы ItemGroup, отвечающие за сопоставление командных проектов и решений. Убедитесь в правильности задания локальных путей для компьютера сборки. Одна локальная папка не может использоваться в нескольких сопоставлениях. Это приведет к возникновению исключения MappingConflictException при выполнении задачи CreateWorkspace.
<ItemGroup>
<!-- для каждого используемого решения добавляется по одной записи -->
<SolutionToBuild Include="$(SolutionRoot)\DependentApp\DependentApp.sln"
/>
<SolutionToBuild Include="$(SolutionRoot)\YourApp\YourApp.sln" />
</ItemGroup>
<ItemGroup>
<!-- для каждого используемого Team Project добавляется по одной записи -->
<Map Include="$/YourApp/YourApp">
<LocalPath>$(SolutionRoot)\YourApp</LocalPath>
</Map>
<Map Include="$/DependentApp/DependentApp">
<LocalPath>$(SolutionRoot)\DependentApp</LocalPath>
</Map>
</ItemGroup>
BeforeGet, чтобы рабочие области извлекались для каждого командного проекта:<Target Name="BeforeGet">
<DeleteWorkspaceTask
TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
Name="$(WorkspaceName)" />
<Exec WorkingDirectory="$(SolutionRoot)"
Command=""$(TfCommand)" workspace /new $(WorkSpaceName) /
server:$(TeamFoundationServerUrl)"/> <Exec
WorkingDirectory="$(SolutionRoot)"
Command=""$(TfCommand)" workfold /unmap /workspace:$(WorkS paceName)
"$(SolutionRoot)""/>
<Exec WorkingDirectory="$(SolutionRoot)"
Command=""$(TfCommand)" workfold /map /workspace:$(WorkSp aceName) /server:$(TeamFoundationServerUrl) "
%(Map.Identity)" "%(Map.LocalPath)""/>
</Target>
Примечание В TFS 2008 для типов сборки нет ограничений на извлечение файлов из других командных проектов. Можно просто редактировать сопоставления рабочих областей при помощи диалогового окна Build Definition Editor и сопоставлять необходимые файлы.
Дополнительные ресурсы
Чтобы изменить конфигурацию существующего сценария сборки, необходимо редактировать тег <ConfigurationToBuild> в файле TFSBuild.proj.
Изменение конфигурации сборки
Source Control Explorer.TeamBuildTypes.TFSBuild.proj из системы управления версиями. Возможно, сначала понадобится выполнить для папки операцию Get Latest Version.TFSBuild.Proj, в окне Source Control Explorer щелкните его дважды.<ConfigurationToBuild> .TFSBuild.proj и верните его в систему управления версиями .Дополнительные ресурсы
Сервер сборки устанавливается отдельно от TFS. Поскольку сервер сборки должен компилировать код, выполнять тесты и анализ кода, на нем должны быть установлены все инструменты, необходимые для этих действий.
Установка сервера сборки
Visual Studio.Team Suite.Team Build, но не нужны различные варианты тестирования, установите Visual Studio Team Developer Edition.Visual Studio Team Test Edition.DVD -диске Team Foundation Server откройте папку uild.Учетная запись, используемая для запуска сервера сборки, должна обладать следующими свойствами:
Log On Locally на компьютерах TFS ;TFS ;Microsoft Active Directory®.Дополнительные ресурсы
Выполнение на одном сервере несколько сценариев сборки может привести к чрезмерной нагрузке на сервер. В случае возникновения такой проблемы вам следует рассмотреть возможность выполнения разных типов сборки на разных серверах.
Процесс сборки может выполняться довольно длительное время, особенно если это сборка большого проекта. При использовании непрерывной интеграции или частых плановых сборок существует вероятность того, что сервер сборки не сможет справиться с их потоком. Для распределения нагрузки рекомендуется установить несколько серверов сборки. Для равномерного распределения нагрузки назначьте каждому из серверов разные типы сборки.
Team Build выполнять сборку и развертывание приложений ASP.NETTeam Build выполнять сборку приложений на основе Microsoft® .NET 1.1.Team Build выполнять сборку проектов пакетов установки и развертывания.Если требуется выполнить сборку решения, содержащего только веб-приложения ASP.NET, важно правильно выбрать конфигурацию. Создавая тип сборки, убедитесь, что выбрана платформа .NET и конфигурация Debug:
Сборка решения, содержащего только проекты веб-приложений ASP.NET
New Team Build Type Creation Wizard.ASP.NETPlatform выберите платформу .NETFinish.При сборке решения, включающего как веб-приложения ASP.NET, так и другие .NET -проекты, необходимо выбрать тип платформы Mixed.
Сборка решения, содержащего веб-приложения ASP.NET и другие .NET -проекты
New Team Build Type Creation Wizard.ASP.NET и другие проекты.Platform выберите вариант Mixed.Finish.Местом накопления скомпилированных двоичных файлов будет папка {Тип сборки}\{Название конфигурации}\{Платформа}\_PublishedWebsites.
Team Build не поддерживает развертывание веб-приложений на Internet Information Services (IIS) . Существует два способа включить развертывание приложения на IIS в сценарий сборки: добавить в тип сборки специальный этап или использовать проект развертывания веб-приложений Web Deployment Project.
Если работа над командным проектом только начинается, рассмотрите вариант Web Deployment Project, чтобы выяснить, возможно ли его использование в вашей разработке. Если веб-сайт уже существует, использование проекта развертывания веб-приложений может нарушить процесс разработки. В этом случае необходимо рассмотреть использование специального этапа после сборки MSBuild. В обоих случаях учетная запись службы, от имени которой выполняется сборка, должна входить в локальную группу администраторов, что позволит ей создать виртуальную папку в IIS.
Послесборочный этап для развертывания веб-приложения
zip -архива извлеките файл Microsoft.Sdc.Tasks.dll и поместите его в ту же в папку, что и тип сборки.DLL в систему управления исходным кодом и возвратите ее.TFSBuild.proj, чтобы файлы при сборке копировались в соответствующую папку, а затем сделайте эту папку виртуальной:<PropertyGroup> , определяющий расположение скомпилированных веб-приложений:<PropertyGroup> <WebBinariesLocation>$(SolutionRoot)\..\Binaries\.NET\Release\_ PublishedWebSites\MyWebSite </WebBinariesLocation> </PropertyGroup>
UsingTask со ссылками на задачи CreateVirtualDirectory и DeleteVirtualDirectory:<UsingTask TaskName="Microsoft.Sdc.Tasks.Web.WebSite. CreateVirtualDirectory" AssemblyFile="Microsoft.Sdc.Tasks.dll" /> <UsingTask TaskName="Microsoft.Sdc.Tasks.Web.WebSite. CreateVirtualDirectory" AssemblyFile="Microsoft.Sdc.Tasks.dll" />
AfterCompile для создания виртуальной папки и копирования файлов в нее:<Target Name="AfterCompile"> <MakeDir Directories="C:\Deploy\MyWebsite" /> <CreateVirtualDirectory VirtualDirectoryName="MyWebSite" Path="C:\ Deploy\Website" /> <DeleteVirtualDirectory VirtualDirectoryName="MyWebSite" /> <Exec Command="xcopy /y /e $(WebBinariesLocation) C:\Deploy\ MyWebsite"/> </Target>
Теперь при выполнении сборки будет создаваться веб-приложение и виртуальная папка, в которую это веб-приложение будет копироваться.
Проект развертывания веб-приложения
Visual Studio 2005 Web Deployment Projects.Visual Studio 2005 Web Deployment Projects.Build выберите команду Add Web Deployment Project.Solution Explorer правой кнопкой мыши щелкните Web Deployment Project и выберите Property Pages.Configuration (Debug или Release) , соответствующее тому, какую сборку должен выполнять Team Build.Deployment установите флажок Create an IIS virtual directory for the output folder и задайте имя виртуальной папки.OK.При выполнении сборки, содержащей это решение, будет создано веб-приложение и виртуальная папка в папке, где выполняется сборка веб-приложения - {Папка сборки}\{Имя командного проекта}\{Тип сборки}\Binaries\ {Название конфигурации}\{Платформа}\_PublishedWebSite\{Имя проекта развертывания веб-приложения.
Дополнительные ресурсы
MSBuild не поддерживает .NET 1.1, поэтому такой поддержки нет и в Team Build. Компания Microsoft опубликовала на сайте CodePlex проект под названием MSBuild Extras (MSBee) , который поддерживает сборку приложений на основе .NET 1.1.
Чтобы выполнять сборку приложений .NET 1.1, необходимо обновить файл проекта до .NET 2.0. Также придется отредактировать файл типа сценария сборки, чтобы при сборке использовались инструменты .NET 1.1, а не инструменты .NET 2.0.
Сборка приложений .NET 1.1 с использованием Team Build 2005
.NET 1.1 до .NET 2.0. Для этого откройте решение в Visual Studio 2005 и запустите Conversion Wizard или выполните команду devenv [имя_проекта] /upgrade..NET 1.1 Software Develop ment Kit (SDK) ..NET 1.1.BuildingFx11inTB.targets в папку, содержащую тип сборки, и верните файл в систему управления исходным кодом.TFSBuild.proj:BuildingFx11inTB.targets:<Import Project="$(MSBuildProjectDirectory)\BuildingFx11inTB.targets" />
CSharp:<PropertyGroup> <AdditionalPropertiesForBuildTarget> CustomAfterMicrosoftCommonTargets=$(ProgramFiles)\MSBuild\MSBee\ MSBuildExtras.Fx1_1.CSharp.targets </AdditionalPropertiesForBuildTarget> </PropertyGroup>
TFSBuild.proj в систему управления исходным кодом.Примечание В TFS 2008 в файл TFSBuild.proj достаточно добавить в элемент SolutionToBuild следующий элемент Properties.
<SolutionToBuild Include="$(BuildProjectFolderPath)/path/MySolution. sln"> <Properties> CustomAfterMicrosoftCommonTargets=$(ProgramFiles)\MSBuild\MSBee\ MSBuildExtras.Fx1_1.CSharp.targets </Properties> </SolutionToBuild>
Дополнительные ресурсы
По умолчанию Team Build не поддерживает проекты пакетов установки приложений. Для компиляции такого проекта и копирования двоичных файлов в место накопления результатов сборки используйте специальный послесборочный этап.
Протестируйте сборку
Убедитесь в работоспособности типа сборки, который намерены использовать для создания пакета установки. Если он не работает, устраните ошибку, прежде чем двигаться дальше.
Совет В большинство сборок включается как сборка пакета установки, так и сборка основного проекта. Если вы создаете новый сценарий сборки исключительно для проекта установки, это необходимо сделать перед переходом к следующему шагу.
Задайте выполнение сборки пакета установки
Solution Explorer щелкните правой кнопкой мыши проект установки, для которого будет создаваться сценарий сборки.Properties.Configuration Manager.Debug, Release, обе).Build для проекта пакета установки.Сделайте все пути сборки в файле проекта относительными
.vdproj в любом другом редакторе (не в Visual Studio )..vdproj из системы управления исходным кодом для редактирования.SccLocalPath (локальный путь в системе управления исходным кодом), SccAuxPath (вспомогательный путь в системе управления исходным кодом), OutputFileName (имя выходного файла) и SourcePath (путь к исходному файлу).(\\) или вообще не имеют никаких дополнительных символов.Все абсолютные пути (если таковые обнаружатся) замените относительными (не меняя константы, которые будут раскрыты программой установки позже), например:
"OutputFileName" = "8:c:\\temp\\SetupProject.msi"замените на
"OutputFileName" = "8:debug\\SetupProject.msi"
Совет Относительные пути разрешаются относительно папки проекта.
Совет При создании путей нужно использовать двойную косую черту ('\\') , потому что вместо нее потом подставляется одиночная косая черта ('\ ) .
Добавьте в сценарий сборки задачу, выполняющуюся после компиляции
TFSBuild.proj находится в системе управления исходным кодом в папке командного проекта в подпапке папки TeamBuildTypes.Get Latest Version.В окне Source Control Explorer щелкните дважды файл TFSBuild.Proj, чтобы открыть его для редактирования.
Примечание Просмотр типа сборки из Team Explorer ничего не даст, поскольку копия файла будет открыта только для чтения.
</ItemGroup> и последним тегом </Project> :<Target Name="AfterCompile">
<Exec Command=""C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv"
"C:\Documents and Settings\dar-ren\My Documents\Visual Studio 2005\Projects\HelloWorldTest\
HelloWorldTestInstaller\HelloWorldTestInstaller.vdproj" /Build "Debug""/>
<Copy SourceFiles="C:\Documents and Settings\darren\My Documents\ Visual Studio 2005
\Projects\HelloWorldTest\HelloWorldTestInstaller\ Debug\HelloWorldTestInstaller.msi"
DestinationFolder="$(OutDir)" />
<Copy SourceFiles="C:\Documents and Settings\darren\My Documents\ Visual Studio 2005
\Projects\HelloWorldTest\HelloWorldTestInstaller\ Debug\setup.exe"
DestinationFolder="$(OutDir)" /> </Target>
При необходимости исправьте пути во вставленном фрагменте кода в соответствии со своим сервером сборки.
Совет Проверьте путь из тега <exec command> в командной строке, заменив " кавычками, например:
"C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv" "C:\Documents and Settings\darren\My Documents\Visual Studio 2005 \Projects\HelloWorldTest\HelloWorldTestInstaller\ HelloWorldTestInstaller.vdproj" /Build "Debug"
Совет Используйте командную строку и для проверки путей Source-Files.
Протестируйте изменения, внесенные в сборку
Team Explorer правой кнопкой мыши щелкните тип сборки и выберите команду Build Team Project.tfsservice есть право копировать файлы из папки двоичных файлов в папку сборки. Папка двоичных файлов - это папка, в которую помещается файл msi после сборки. Папка сборки определена в файле в теге <BuildDirectoryPath> .tfsserver обладает правом чтения файла .vdproj и исходных файлов проекта, а также приложения, с которым связан проект установки. Кроме того, учетной записи tfsserver необходимо право записи двоичных файлов в выходную папку, например, Debug или Release.exec command конфигурация сборки существует. Например, вместо конфигурации "Debug" в проекте может иметься конфигурация "Debug|Any CPU" . Это можно проверить, посмотрев свойства решения в Solution Explorer.<Exec Command=""C:\Program Files\Microsoft Visual Studio 8\Common7\ IDE\devenv" "C:\Documents and Settings\darren\My Documents\ Visual Studio 2005\Projects\HelloWorldTest\HelloWorldTestInstaller\ HelloWorldTestInstaller.vdproj" /Build "Debug" > c:\temp\ output.txt"/>
Дополнительные ресурсы
Новый сценарий сборки создается из папки Team Builds в Team Explorer.
Создание сценария сборки
Team Explorer.Team Builds.New Team Build Type.Next.Release или Debug ) и щелкните Next.TFSRTM.c:uilds.\\TFSRTM\ NightlyBuilds, и щелкните Next.Run tests, выберите список тестов, которые хотите связать со сборкой, и щелкните Next.Finish, чтобы создать новый тип сборки.Чтобы создать несколько типов сборки, например, Release для заказчиков и Debug для группы тестирования, необходимо использовать разные сценарии для каждого типа сборки. Каждый из них создается так, как описано в предыдущем разделе.
Чтобы выполнить сборку проекта, имеющего зависимости от другого командного проекта, необходимо перенести исходный код или сборки из этого проекта в рабочую область на сервере сборки. Для этого понадобится отредактировать файл TFSBuild.proj, добавив в него сборку или ссылку на решение, и переопределить событие BeforeGet для получения всех необходимых сборок или исходных файлов из используемых командных проектов.
Сборка проекта, использующего сборки из другого командного проекта
Source Control Explorer извлеките для редактирования сценарий TFS-Build.proj.Под разделом PropertyGroup добавьте следующие параметры:
<!-- добавить под PropertyGroup --> <TfCommand>$(TeamBuildRefPath)\..\tf.exe</TfCommand> <SkipInitializeWorkspace>true</SkipInitializeWorkspace>
Параметр SkipInitializeWorkSpace позволяет пропустить вызов задач по умолчанию для удаления и воссоздания рабочей области на компьютере сборки. Это новое свойство используется в специальной цели BeforeGet (см. ниже).
ItemGroup, отвечающие за сопоставление как командных проектов, так и решений. Убедитесь в правильности задания локальных путей для компьютера сборки. Одна локальная папка не может использоваться в нескольких сопоставлениях. Это приведет к исключению MappingConflictException при выполнении задачи CreateWorkspace.<ItemGroup>
<!-- добавляется по одной записи для каждого используемого решения -->
<SolutionToBuild Include="$(SolutionRoot)\DependentApp\DependentApp.
sln" />
<SolutionToBuild Include="$(SolutionRoot)\YourApp\YourApp.sln" />
</ItemGroup>
<ItemGroup>
<!-- добавляется по одной записи для каждого используемого проекта -->
<Map Include="$/YourApp/YourApp">
<LocalPath>$(SolutionRoot)\YourApp</LocalPath> </Map> <Map Include="$/DependentApp/DependentApp">
<LocalPath>$(SolutionRoot)\DependentApp</LocalPath>
</Map>
</ItemGroup>
BeforeGet, чтобы рабочие области извлекались для каждого командного проекта:<Target Name="BeforeGet"> <DeleteWorkspaceTask
TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
Name="$(WorkspaceName)" /> <Exec
WorkingDirectory="$(SolutionRoot)"
Command=""$(TfCommand)" workspace /new $(WorkSpaceName) /
server:$(TeamFoundationServerUrl)"/> <Exec
WorkingDirectory="$(SolutionRoot)"
Command=""$(TfCommand)" workfold /unmap /workspace:$(WorkS
paceName) "$(SolutionRoot)""/> <Exec
WorkingDirectory="$(SolutionRoot)"
Command=""$(TfCommand)" workfold /map /workspace:$(WorkSp aceName) /
server:$(TeamFoundationServerUrl) "%(Map.Identity)" "%(Map.LocalPath)""/>
</Target>
Примечание В TFS 2008 нет ограничений для сценариев сборки на извлечение файлов из других командных проектов. Можно просто редактировать сопоставления рабочих областей при помощи диалогового окна Build Definition Editor и сопоставлять необходимые файлы.
Дополнительные ресурсы
Чтобы узнавать о завершении сборки по электронной почте, создайте уведомление проекта.
Создание уведомления о выполнении сборки
Team Explorer.Project Alerts.Дополнительные ресурсы
Чтобы получать сообщения по электронной почте только при сбое сборки, создайте уведомление проекта с фильтрованием.
Создание уведомления о сбое сборки
BisSubscribe.exe подпишитесь на событие BuildCompletionEvent и задайте фильтр, определяющий, что вы хотите получать уведомления по электронной почте только при сбое сборки. Используйте для этого следующий синтаксис:bissubscribe /eventType BuildCompletionEvent /address myemail@domain.com /deliveryType EmailPlaintext /server tfsserver1 /filter " TeamProject = 'MyTeamProject' AND CompletionStatus='Failed'"
Дополнительные ресурсы
Запустить тип сборки можно из папки Team Builds в Team Explorer. Ручной запуск сборки
Team Explorer.Team Builds.Build Team Project.Состояние сборки можно проверить в окне Builds, которое доступно в Team Explorer.
Проверка успешного выполнения сборки
Team Explorer.Team Builds.Результат сборки можно просмотреть в окне Builds, которое доступно в Team Explorer.
Просмотр результата сборки
Team Explorer.Team Builds.Team Build, соответствующий номеру сборки, для которой хотите увидеть результат.Build name.Log.Чтобы задать другой сервер сборки для существующего типа сборки, измените тег <BuildMachine> в файле TFSBuild.proj.
Изменение сервера сборки для существующего типа сборки
Source Control Explorer.Source Control Explorer разверните папку своего командного проекта.TeamBuildTypes.TFSBuild.proj из системы управления исходным кодом. Возможно, сначала придется выполнить операцию Get Latest Version.TFSBuild.Proj, щелкните его дважды в Source Control Explorer.<BuildMachine> , подставив в него указание на другой сервер.TFSBuild.proj и верните его в систему управления исходным кодом.Примечание В TFS 2008 тег <BuildMachine> уже не используется. Вместо этого в описании сборки задается агент сборки. Редактирование агентов сборки выполняется при помощи параметра Manage Build Agents. Чтобы найти его, щелкните правой кнопкой узел Builds в Team Explorer Build. Агент сборки задается при запуске новой сборки.
Дополнительные ресурсы
Чтобы изменить место накопления результатов сборки, отредактируйте тег <DropLocation> в файле TFSBuild.proj.
Изменение места накопления для существующего типа сборки
Source Control Explorer.TeamBuildTypes.TFSBuild.proj из системы управления исходным кодом. Возможно, сначала придется выполнить операцию Get Latest Version.TFSBuild.Proj, щелкните его дважды в Source Control Explorer.<DropLocation> , чтобы он указывал на новое положение.TFSBuild.proj и верните его в систему управления исходным кодом.Примечание В TFS 2008 тег <DropLocation> не используется. Чтобы задать место накопления результатов сборки, щелкните правой кнопкой мыши описание сборки в узле Builds дерева Team Explorer, выберите команду Edit Build Definition, щелкните Build Defaults и задайте место публикации.
Дополнительные ресурсы
Увидеть, какие наборы изменений связаны со сборкой, можно из окна Builds, которое доступно в Team Explorer.
Просмотр наборов изменений, связанных со сборкой
Team Explorer.Team Builds.Team Build, соответствующий номеру сборки, для которой вы хотите увидеть наборы изменений.Associated changesets.ID.Качество сборки можно изменить из окна Builds, которое доступно в Team Explorer.
Изменение показателя качества сборки
Team Explorer.Team Builds.Build Quality выберите сборку, для которой хотите задать качество сборки, и задайте значение качества сборки.Если вы работаете в небольшой группе, вам стоит использовать стратегию единого решения Visual Studio, содержащего все проекты. Эта структура упрощает разработку, поскольку при открытии решения сразу доступен весь код. При такой стратегии также легко устанавливать ссылки, поскольку все они связывают проекты одного решения. Вы вольны использовать и файловые ссылки, чтобы ссылаться на сборки сторонних производителей, например, приобретенные компоненты, которые находятся вне вашего решения.
Дополнительные ресурсы
Если вы работаете в большой группе, вам выгодно использовать несколько решений, каждое из которых представляет определенную подсистему приложения. Разработчики будут применять эти решения для работы над мелкими частями системы без необходимости загрузки всего кода по всем проектам. Проектируйте структуру решения так, чтобы любые проекты, связанные зависимостями, группировались вместе. Это позволит вам использовать ссылки на проекты вместо ссылок на файлы. Подумайте о создании главного решения, которое содержало бы все проекты, для сборки всего приложения.
Работая с несколькими решениями, используйте во всех проектах плоскую структуру файлов. Типичный пример - приложение, включающее проект Microsoft Windows® Forms, проект ASP.NET, службу Windows и ряд библиотек классов, которые совместно используются некоторыми или всеми перечисленными проектами.
Для всех проектов может использоваться следующая плоская структура:
/Source/WinFormsProject/WebProject/WindowsServiceProject/ClassLibrary1/ClassLibrary2/ClassLibrary3Web.slnService.slnAll.slnПлоская структура обеспечивает большую гибкость и возможность использовать решения для создания разных представлений проектов. Физическую структуру папок решения менять очень трудно, особенно если используется библиотека классов из другого решения.
Примечание Если вы осуществляете сборку при помощи Team Build (на основе MSBuild ), можете создавать решения, не включающие в себя все связанные проекты. При условии что сначала вы сбираете решение целиком, генерируя двоичный файл для каждого решения, MSBuild сможет проследовать по ссылкам в проекты вне решения и произвести успешную сборку. Решения, создаваемые таким образом, не будут собираться при помощи команды сборки из Visual Studio. Они будут работать только с Team Build и MSBuild.
Дополнительные ресурсы
Работая над очень большим решением, для которого требуется несколько десятков проектов, вы рискуете столкнуться с ограничениями масштабируемости. Если это случилось, разбейте приложение на несколько решений, но не создавайте главное решение для всего приложения. Все ссылки внутри каждого решения будут ссылками на проекты. Ссылки на проекты вне решения (например, на библиотеки сторонних разработчиков в другом решении) будут ссылками на файлы. Это означает, что главного решения быть не может. Вместо этого нужно использовать сценарий, в котором учтен порядок сборки решений. Одной из задач обслуживания структуры из нескольких решений является контроль за тем, чтобы разработчики по невнимательности не создали кольцевых ссылок между решениями. Такая структура требует создания сложного сценария сборки и явного сопоставления отношений зависимости. Собрать приложение во всей его полноте из Visual Studio невозможно. Вместо этого вам придется использовать TFS Team Build или непосредственно MSBuild.
Дополнительные ресурсы
Информацию о качестве сборки можно найти в окне Builds, которое доступно из Team Explorer.
Просмотр информации о качестве сборки
Team Explorer.Team Builds.Если используется шаблон процесса MSF CMMI, информация о качестве сборки, а также дополнительные данные по результатам тестов, покрытию кода тестами и степени изменения кода, записываются в отчет Builds.
Просмотр информации о качестве сборки в MSF CMMI
Team Explorer разверните узел нужного командного проекта.Reports и выберите команду Show Report Site.Builds.Возвращенные изменения, связанные с каждой сборкой, можно увидеть в окне Builds, которое доступно из Team Explorer.
Просмотр возвратов изменений, связанных со сборкой
Team Explorer.Team Builds.Team Build, для которого хотите увидеть возвраты изменений.Associated changesets, чтобы просмотреть возвраты изменений, связанные со сборкой.ID.Рабочие элементы и ошибки, которые были закрыты в конкретной сборке, можно просматривать в окне Builds, доступном в Team Explorer.
Просмотр закрытых рабочих элементов, связанных со сборкой
Team Explorer.Team Builds.Team Build, соответствующий номеру сборки, для которой вы хотите просмотреть рабочие элементы.Associated work items.Если используется шаблон процесса MSF CMMI, открытые, решенные и закрытые рабочие элементы за указанный период времени можно просмотреть в отчете Open Issues and Blocked Work Items . Однако в отчете информация отсортирована по датам, а не по сборкам, поэтому вам необходимо будет сгруппировать результаты по сборкам вручную.
Просмотр открытых рабочих элементов или ошибок для конкретной сборки
Team Explorer разверните узел своего командного проекта.Reports и выберите команду Show Report Site.Open Issues and Blocked Work Items Trend .Отслеживать прогресс проекта и темпы выполнения рабочих элементов от сборки к сборке можно с помощью отчета . Этот отчет доступен как в шаблоне проекта MSF CMMI, так и в шаблоне MSF Agile.
Контроль за темпом выполнения проекта
Team Explorer разверните узел своего командного проекта.Reports и выберите команду Show Report Site.Velocity .Отслеживать количество пройденных и непройденных сценариев тестирования за указанный период времени позволяет отчет Quality Indicators. Информация в нем отсортирована по дате, а не по сборке, т.е. вам необходимо будет сгруппировать результаты по сборкам вручную. Этот отчет доступен как в MSF CMMI, так и в MSF Agile.
Просмотр пройденных и непройденных тестов для сборки
Team Explorer разверните узел своего командного проекта.Reports и затем щелкните Show Report Site.Quality Indicators.Если вы используете шаблон процесса MSF CMMI, результаты тестов верификации сборки ( build verification testing, BVT ) можно найти в отчете Builds.
Просмотр состояния сборки
Team Explorer разверните узел своего командного проекта.Reports и выберите команду Show Report Site.Builds.Функция Team Build в TFS не поддерживает создание плановых сборок из пользовательского интерфейса. Поэтому для запуска сборок в заданное время используется Windows и утилита командной строки TFSBuild.
Создание плановой сборки
TFSBuild:TfsBuild start <<TeamFoundationServer>> <<TeamProject>> <<BuildTypeName>>
Подробнее - в разделе "Как настроить плановую сборку в Visual Studio Team Foundation Server " этого курса.
Примечание Пользователи TFS 2008 могут планировать сборки прямо в Visual Studio. Для редактирования описания типа сценария сборки необходимо щелкнуть правой кнопкой описание сборки в узле Builds дерева Team Explorer, выбрать Edit Build Definition, щелкнуть Trigger и задать расписание сборки.
Дополнительные ресурсы
Выбор частоты выполнения сборок - одно из самых важных решений при создании плановой сборки. Если проект претерпевает существенные изменения в течение часа, и при этом непрерывная интеграция не используется, можно выполнять сборки каждый час. Это позволит разработчикам оперативно получить информацию о качестве кода, в частности, от тестировщиков и членов других групп.
Если проект претерпевает существенные изменения на протяжении дня, можно использовать ежедневную плановую сборку. Группы тестирования и разработки будут каждое утро получать готовую к тестированию сборку, которая включает в себя все изменения, внесенные за предыдущий рабочий день.
В больших сложных проектах процесс сборки может занимать несколько дней. В этом случае следует остановиться на еженедельных сборках. Готовую к тестированию сборку, включающую все внесенные на предыдущей неделе изменения, группа разработки будет получать в начале каждой недели.
Дополнительные ресурсы
Visual Studio Team Foundation Server " этого курса.Простейший приемочный тест поможет вам убедиться в собственном умении создавать модульные тесты и связывать их с процессом сборки.
Чтобы создать список тестов, связанных со сборкой, необходимо установить Visual Studio Test Edition или Visual Studio Team Suite. Автоматизированные тесты можно выполнять на сервере сборки, только если на нем установлены Visual Studio Developer Edition, Visual Studio Test Edition или Visual Studio Team Suite.
Создание приемочного теста
Test выберите команду New Test.Unit Test и OK.Create.Test выберите команду Create New Test List.Create New Test List задайте имя списка тестов и щелкните OK.Test Manager щелкните узел All Loaded Tests .VSMDI -файл проекта модульного теста.Созданный список тестов будет доступен в новой сборке и сможет выполняться автоматически как часть процесса сборки.
Дополнительные ресурсы
Автоматизированное тестирование применяется для получения информации о качестве кода после каждой сборки. Для выполнения автоматизированных тестов необходимо, чтобы на сервере сборки были установлены Visual Studio Developer Edition и Visual Studio Test Edition или полностью Team Suite. Версия Visual Studio Developer Edition необходима для выполнения сборки, а без Test Edition невозможно будет настроить выполняемые тесты и списки тестов.
Выполнение автоматизированного тестирования в процессе сборки
Test выберите команду Create New Test List.Test Manager сгруппируйте тесты в новый список, перетаскивая их из раздела Test View в Test List.Дополнительные ресурсы
Включить анализ кода в сценарий сборки можно как при создании нового типа сборки, установив соответствующий флажок в New Team Build Type Creation Wizard, так и позже, изменяя файл TFSBuild.proj.
Включение анализа кода в файле TFSBuild.proj
lt;RunCodeAnalysis> значение Always.<RunCodeAnalysis> значение Default.Дополнительные ресурсы
Team Build " этого курса.Если в сборке происходит сбой из-за ошибок компиляции, создается рабочий элемент для отслеживания ошибки, а сама сборка помечается как неудачная. Однако, если сборка не проходит автоматизированный тест, это не считается сбоем. Непройденный тест преобразуется в предупреждение, и сборка продолжается.
Можно завершать сборку сбоем и при непрохождении автоматизированного теста, попутно автоматически формируя рабочий элемент для отслеживания непройденного теста.
Завершение сборки сбоем при невыполнении теста
Microsoft.TeamFoundation.Build.targets из папки Program Files\MSBuild\Microsoft\VisualStudio\v8.0\TeamBuild.TFSBuild.proj для типа сборки, который должен завершаться сбоем в случае непрохождения теста (тестов).RunTestWithConfiguration из Microsoft.TeamFounda-tion.Build.targets в самый конец файла TFSBuild.proj, непосредственно перед закрывающим тегом </Project> .ContinueOnError с true на false.Примечание Вам доступны две задачи тестирования. Измените задачу серверной сборки, чтобы изменить поведение сборок только на сервере сборки. Задача клиентской сборки используется при выполнении сборки на компьютере разработчика.
Если вы хотите, чтобы сборка всегда считалась неудачной при завершении теста с ошибкой, измените непосредственно Microsoft.TeamFoundation. Build.targets. Это повлияет на поведение всех типов командной сборки.
Рекомендованное выше решение легко реализуется, но нет гарантии, что оно будет работать в будущих версиях .
Дополнительные ресурсы
В этом разделе
Политики возврата после правки
Управление проектом
Microsoft Project.Microsoft Excel.Team Foundation Server.Сочетая политики анализа и тестирования, вы обеспечите соблюдение стандартов качества кода. Например, встроенная в VSTS политика тестирования обеспечит обязательное проведение специальных тестов перед возвратом кода в систему управления исходным кодом Microsoft® Visual Studio® 2005 Team Foundation Server (TFS) . Также можно настроить политику анализа кода, обеспечив с ее помощью соответствие кода определенным нормам безопасности, производительности, переносимости,
Применяя этот тип политики возврата после правки в дополнение к политикам, направленным на укрепление стандартов и нормативов программирования, вы гарантируете соответствие кода специфическим критериям качества.
Применение политики анализа при возврате после правки
Team Explorer щелкните правой кнопкой нужный командный проект, раскройте подменю Team Project Settings и выберите команду Source Control.Check-in Policy.Add, а затем выберите и настройте соответствующую политику.Дополнительные ресурсы
Visual Studio Team Foundation Server " этого курса.Используйте новую стандартную политику возврата после правки Work Item, которая заставляет разработчиков связывать с возвратом рабочие элементы. Это поможет определить связь между изменениями, внесенными в исходный код, и рабочими элементами, отслеживающими ошибки и задания.
Применение политики, обязывающей разработчиков связывать рабочие элементы с возвратом после правки
Team Explorer правой кнопкой мыши щелкните нужный командный проект, раскройте подменю Team Project Settings и выберите команду Source Control.Check-in Policy.Add, а затем выделите и настройте политику Work Item.Дополнительные ресурсы
Visual Studio Team Foundation Server " этого курса.Политика анализа кода при возврате после правки, включенная в комплект Team Foundation Server, позволяет автоматически проводить статический анализ кода, гарантируя его соответствие соответствующим нормативам. Вы можете детально настроить политику анализа для проверки множества различных правил, определяющих требования к дизайну,
Применение политики анализа кода для соблюдения стандартов программирования
Team Explorer правой кнопкой мыши щелкните нужный командный проект, раскройте подменю Team Project Settings и щелкните команду Source Control.Check-in Policy и щелкните кнопку Add.Add Check-in Policy установите параметр Code Analysis и щелкните OK.Code Analysis Policy Editor задайте параметр Enforce C/ C++ Code Analysis (/analyze), Enforce Code Analysis For Managed Code или оба, если ваш проект содержит сочетание управляемого и неуправляемого кода.API, или написать политику для соблюдения стиля программирования, принятого в вашей команде, задав, например, как расставлять фигурные скобки в исходном коде.Дополнительные ресурсы
Visual Studio Team Foundation Server " этого курса.Microsoft Project.Microsoft Excel.Team Foundation Server.Используйте Microsoft Office Project для создания заданий по расписанию, выявления зависимостей задач, сбалансированного распределения ресурсов и определения сроков завершения. Чтобы управлять проектом при помощи Microsoft Project, нужно предпринять следующие шаги:
Team Foundation Server.Team Explorer, устанавливая статус рабочего объекта.Microsoft Project.Публикация плана проекта в TFS
Microsoft Office Project.Microsoft Office Project в меню Team выберите команду Choose Team Project.Team Foundation Server для своего командного проекта.OK.Work Item Type укажите тип для каждого рабочего элемента, который хотите опубликовать в TFS.Sync выберите вариант Do Not Publish для суммарных задач, которые не хотите публиковать в TFS.Если у вас есть задачи, назначенные более чем одному ресурсу, разделите их на отдельные задачи, порученные одному ресурсу. (В настоящий момент Team Foundation Server не поддерживает назначения рабочего элемента нескольким ресурсам.) При необходимости сгруппируйте отдельные задачи в суммарную задачу, чтобы получить возможность пользоваться автоматическим вычислением.
Совет Чтобы сгруппировать наборы задач, создайте в .
Publish на панели инструментов Work Item, чтобы опубликовать план проекта в TFS.Дополнительные ресурсы
Используйте Microsoft Office Excel® для хранения, сортировки, фильтрования и управления требованиями, сценариями, проблемами, ошибками, рисками и рабочими элементами.
Существует два способа создания списка рабочих элементов. Первый позволяет выбрать запрос рабочего элемента в Team Explorer и создать привязанную к нему электронную таблицу со списком рабочих элементов, заполненным данными из запроса. Второй способ - создать список рабочих элементов в Excel, используя надстройку для выбора проекта и импорта рабочих элементов.
Создание списка рабочих элементов в Excel
Microsoft Office Excel выберите в меню Team команду New List.Connect to a Team Foundation Server выберите сервер, к которому нужно подключиться, или щелкните Servers для ввода информации о сервере вручную.Team Projects выберите командный проект на сервере TFS, с которым хотите работать. Документ привязан к командному проекту.OK.Query List и выберите запрос в раскрывающемся списке Select a Query.Publish Changes в меню Team.Дополнительные ресурсы
Если вам не требуется поддержка функций управления проектом TFS, выходящих за рамки системы управления исходным кодом, вам вполне хватит минимального шаблона процесса. Чтобы создать минимальный шаблон процесса при помощи диспетчера Process Template Manager, загрузите шаблон на локальный компьютер, отредактируйте его, убрав неиспользуемые разделы, а затем выгрузите шаблон обратно на сервер.
Создание шаблона процесса с поддержкой только управления исходным кодом
Team Explorer щелкните правой кнопкой имя сервера. Затем выберите команды Team Foundation Server Settings и Process Template Manager.Download.Process Template.xml.Reporting, Portal и WorkItemTracking.Reporting, Portal и WorkItemTracking.WorkItemTracking.Reports, Windows Sharepoint Services и WorkItem Tracking.Team Explorer щелкните правой кнопкой имя сервера и выберите команды Team Foundation Server Settings и Process Template Manager.Upload и выберите шаблон, который вы хотите выгрузить. Выгрузив измененный шаблон процесса, вы сможете использовать его при создании новых командных проектов.Дополнительные ресурсы
Настройка шаблона процесса требуется, чтобы привести стандартные типы рабочих элементов, параметры безопасности, параметры системы управления исходным кодом и отчетов в соответствие с требованиями, предъявляемыми к процессу в вашей организации.
Настройка шаблона процесса
TFS.Есть два способа настройки выполняющегося процесса:
Process Template Editor из комплекта Microsoft Visual Studio 2005 Team Foundation Server Power Tool - графическим редактором для просмотра и настройки шаблонов процесса. Подключившись к TFS, его можно использовать для настройки определений типов рабочих элементов и глобальных списков активного проекта.Дополнительные ресурсы
Для настройки типа рабочего элемента используется инструмент .
Настройка типов рабочего элемента
Загрузите наиболее подходящий шаблон, выполнив следующие действия:
Visual Studio выберите в меню Team команду Team Foundation Server Settings.Process Template Manager.Process Template Manager выберите шаблон процесса, который хотите изменить, и щелкните кнопку Download.Save.Откройте шаблон процесса в Process Editor и отредактируйте типы рабочих элементов, как описано ниже:
Visual Studio откройте меню Team.Process Editor и Open Process Template.Open Process Template fileset перейдите к загруженному шаблону процесса и щелкните Open. Файл ProcessTemplate.xml будет загружен в Visual Studio.Process Template Explorer щелкните кнопку Work Item Tracking.Type Definition.Add, расположенную на панели инструментов справа, чтобы создать новый рабочий элемент.New Work Item Type введите имя типа рабочего элемента и выберите существующий тип рабочего элемента из раскрывающегося списка Copy From. Создается новый тип рабочего элемента, отображающийся в списке Item List на правой панели вкладки Type Definition.File команду Save.Type Definitions щелкните правой кнопкой тип рабочих элементов, который хотите отредактировать, и выберите команду Open. Выбранный тип откроется в новом окне Visual Studio.Дополнительные ресурсы
Есть два способа редактирования существующего типа рабочего элемента: из командной строки и при помощи инструмента Process Template Editor из комплекта TFS Power Tool.
Для редактирования типа рабочего элемента из командной строки используются инструменты witexport и witimport, которые находятся в папке %programfiles%\Program Files\Microsoft Visual Studio 8\Common7\IDE компьютера, на котором установлен Team Explorer.
Экспорт, редактирование и импорт типа рабочего элемента
witexport, как показано ниже, чтобы экспортировать тип рабочего элемента:witexport /f task.xml /t http://TFSServer:8080 /p MyTeamProject /n Task
witimport, как показано ниже, чтобы импортировать измененный тип:witimport /f task.xml /t http://TFSServer:8080 /p MyTeamProject
В предыдущем примере подразумевается экспорт типа рабочего элемента Task из проекта MyTeamProject на сервер с именем TFSServer.
Редактирование типа рабочего элемента с помощью Process Template Editor
Чтобы импортировать и отредактировать тип рабочего элемента, выполните следующие действия:
Visual Studio в меню Team выберите команду Process Template Editor. Затем щелкните Work Item Types и выберите Export WIT.Connect to Team Foundation Server введите URL сервера.Select Work Item Type выберите тип рабочего элемента, экспорт которого хотите осуществить.Отредактируйте тип рабочего элемента и сохраните изменения. Чтобы экспортировать тип рабочего элемента, выполните следующие действия:
Visual Studio в меню Team выберите команду Process Editor. Затем щелкните Work Item Types и выберите Import WIT.Connect to Team Foundation Server введите URL сервера.Import Work Item Type перейдите к отредактированному типу рабочего элемента и выберите командный проект, в который хотите его экспортировать.OK.Дополнительные ресурсы
Process Editor вы найдете в разделе "Как настроить шаблон процесса в Visual Studio Team Foundation Server " этого курса.Итерации применяются для группирования рабочих элементов, которое может использоваться при создании рабочих элементов, в запросах рабочих элементов и при составлении отчетов.
Создание итерации
Team Explorer щелкните командный проект.Team раскройте подменю Team Project Settings и выберите команду Areas and Iterations.Areas and Iterations перейдите на вкладку Iteration.Add a child node на панели инструментов.Rename и введите имя итерации.Iteration.Close.Примечание В шаблон процесса MS Agile включены три предопределенные итерации. При необходимости вы вольны, удалить эти итерации, переименовать их или оставить неизменными.
Дополнительные ресурсы
Области создаются для разделения работ по проекту на подобласти, связанные, например, с разработкой интерфейса, приложения и БД. Создав области, вы можете назначать им сценарии и рабочие элементы.
Начинайте с одиночной области корневого уровня. Позднее, с развитием проекта, вы будете по мере необходимости создавать новые области.
Создание областей
Team Explorer щелкните ваш проект.Team раскройте подменю Team Project Settings и выберите команду Areas and Iterations.Areas and Iterations перейдите на вкладку Area.Add a child node на панели инструментов.Rename и введите имя области.Area.Дополнительные ресурсы
Для подписки на уведомления о возврате после правки используется инструмент bissubscribe, расположенный в папке %programfiles%\Microsoft Visual Studio 2005 Team Foundation Server\TF Setup на сервере TFS.
Создание уведомления о возврате после правки
C:\Program Files\ Microsoft Visual Studio 2005 Team Foundation Server\TF Setup\.bissubscribe /eventType CheckinEvent /address someone@domain.com / deliveryType EmailHtml /domain http://TFSRTM:8080
bissubscribe /eventType CheckinEvent /address http://TFSRTM:8080/ci/ notify.asmx /deliveryType Soap /domain http://TFSRTM:8080
Если у вас возникли ошибки, а также если вы хотите удостовериться в правильности регистрации уведомления, выполните следующие действия:
SQL Server Management Studio.tfsIntegration.tbl_subscription.В таблице tbl_subscription перечислены все события, на которые задана подписка. Найдите в этой таблице записи о событиях, на которые вы подписаны. Чтобы отписаться от события, удалите из таблицы запись о нем или воспользуйтесь командой bissubscribe с параметром / и идентификатором события, например:
bissubscribe /delete/id [id] /server http://TFSRTM:8080
Дополнительные ресурсы
Чтобы собрать разнообразную информацию о проекте в одном месте, создайте на портале командного проекта Microsoft Office SharePoint® панель отчетов ( report dashboard ). Вот список отчетов, которые на ней можно разместить:
Remaining Work Оставшаяся работа.Quality Indicators Показатели качества.Bug Rates Частота появления ошибок.Project Velocity Темп выполнения проекта.В каждый отчет, который вы хотите отобразить на панели, нужно добавить веб-часть Report Viewer.
Изменение портала командного проекта и создание панели отчетов
Установите веб-часть Report Viewer на сервер отчетов. Для этого используются инструмент stsadm.exe и файл RSWebParts.cab, входящие в дистрибутив Microsoft Office SharePoint и Report Services.
STSADM.EXE находится в папке C:\Program Files\ Common Files\Microsoft Shared\web server extensions\60\BIN.RSWebParts.Cab находится в папке C:\ Program Files\Microsoft SQL Server\90\Tools\Reporting Services\SharePoint.Пример использования:
STSADM.EXE -o addwppack -filename "C:\ Program Files\Microsoft SQL Server\90\Tools\Reporting Services\SharePoint\RSWebParts.cab" -globalin-stall
Team Explorer щелкните правой кнопкой нужный проект и выберите команду Show Project Portal.Modify Shared Page, разверните подменю Browse и выберите команду Add Web Parts.Virtual Server Gallery.Web Part List выберите вариант Report Viewer.Add.Report Manager ), например,http:// <сервер отчетов>/reports.
<мой проект>/Quality Indicators.Дополнительные ресурсы
Создать папки в хранилище системы управления рабочим кодом можно при помощи Team Explorer, а также путем создания структуры папок в вашей рабочей области и последующим возвратом незавершенных изменений.
Создание структуры папок на сервере
Team Explorer разверните нужный командный проект.Source Control.Source Control Explorer выберите корневой узел, щелкните правой кнопкой панель Local Path и выберите команду New Folder.Enter.Создание структуры папок на клиенте
При первом возврате незавершенных изменений структура папок будет скопирована на сервер.
Дополнительные ресурсы
Средствами Team Explorer удалить проект нельзя, придется воспользоваться инструментом командной строки TfsDeleteProject. Он находится в папке Program Files\Microsoft Visual Studio 8\Common7\IDE на компьютере, где установлен Team Explorer.
Удаление проекта из TFS
C:\Program Files\ Microsoft Visual Studio 2005 Team Foundation Server\TF Setup\.TfsDeleteProject, как показано в примере: TfsDeleteProject /server:TfsServer TeamProjectNameДополнительные ресурсы
В этом разделе
Администрирование
Создание и настройка
Visual Studio.Excel.Просмотр
Модифицируйте сайт портала Microsoft® Office SharePoint® командного проекта, чтобы создать панель отчета. Она позволяет обобщать разнообразную информацию проекта в едином расположении. Функциональная панель отчетов должна, вероятно, включать следующие отчеты:
Вы вольны добавлять новые отчеты на страницу портала SharePoint. Для этого в каждый отчет, который вы хотите отобразить на странице, нужно добавить компонент Report Viewer Web Part.
Изменение портала командного проекта и создание панели отчетов
Report Viewer Web Part на сервер отчетов. Для этого используются инструмент stsadm.exe и файл RSWebParts.cab, которые входят в дистрибутив Microsoft Office SharePoint и Report Services, например:STSADM.EXE -o addwppack -filename "C:\ Program Files\Microsoft SQL Server\90\Tools\Reporting Services\SharePoint\RSWebParts.cab" -globalinstall
STSADM.EXE находится в папке C:\Program Files\Com-mon Files\Microsoft Shared\web server extensions\60\BIN.RSWebParts.Cab находится в папке C:\ Program Files\Microsoft SQL Server\90\Tools\Reporting Services\SharePoint.Team Explorer щелкните правой кнопкой ваш проект.Show Project Portal.Modify Shared Page.Browse и щелкните Add Web Parts.Virtual Server Gallery.Web Part List выберите вариант Report Viewer.Add.http://<сервер отчетов>/reports.<мой проект>/Quality Indicators.Дополнительные ресурсы
При помощи списка разрешений отчета вы определяете пользователей, которым можно редактировать и просматривать отчеты. Для установки разрешений вы должны быть членом роли в Microsoft SQL Server™ Reporting Services.
Предоставление разрешение на доступ ко всем отчетам командного проекта
Team Explorer разверните узел проекта.Reports и выберите команду Show Report Site.Properties.Security.Edit Item Security.Edit.New Role Assignment.Установка разрешений для одного отчета
Team Explorer разверните узел проекта.Reports и выберите Show Report Site.Properties.Security.Edit Item Security.Edit.New Role Assignment.Дополнительные ресурсы
Visual Studio.Excel.Существующие отчеты модифицируются при помощи инструмента Microsoft SQL Server™ 2005 Reporting Services Designer, входящего в Visual Studio (Business Intelligence Development Studio) , который поставляется с клиентскими инструментами SQL Server 2005. Часто модифицировать существующий отчет проще, чем создать новый.
Создание проекта отчета
Visual Studio откройте меню File и выберите команды New и Project.Business Intelligence Project.Report Server Project.Name и его расположение в поле Location. Щелкните OK.Экспорт модифицируемого отчета
Show Project Portal.Quick Launch, находящейся слева, щелкните Reports.Properties.Edit..rdl в папке проекта, созданного ранее.Добавление источников данных
Visual Studio Solution Explorer щелкните правой кнопкой Shared Data Sources и выберите команду Add New Data Source.TfsReportDS в текстовое поле Name.Type выберите Microsoft SQL Server.Edit.TFSWarehouse.ОК, чтобы добавить источник данных.OLAP:Visual Studio Solution Explorer щелкните правой кнопкой Shared Data Sources и выберите команду Add New Data Source.General введите TfsOlapReportDS в поле Name.Type выберите Microsoft SQL Server.Edit.TFSWarehouse.ОК, чтобы добавить источник данных.Добавление отчета в проект
Solution Explorer щелкните правой кнопкой Reports, затем щелкните Add и Existing Item..rdl , экспорт которого выполнили ранее.Редактирование отчета
Layout Pane.Примечание Вы, конечно, можете использовать построитель отчетов ( Report Builder ), который имеется на сайте отчетов команды, но этот инструмент не очень хорошо поддерживается сценариями отчетов Visual Studio, поэтому работать с ним не рекомендуется.
Дополнительные ресурсы
Создание отчетов также осуществляется при помощи инструмента Microsoft SQL Server™ 2005 Reporting Services Designer, входящего в Visual Studio (Business Intelligence Development Studio) из клиентского комплекта SQL Server 2005.
Новый отчет следует создавать лишь в том случае, если у вас нет отчетов, которые при изменении будут удовлетворять вашим новым потребностям. Часто модифицировать существующий отчет проще, чем создать новый.
Создание проекта отчета
Visual Studio откройте меню File и выберите команды New и Project.Business Intelligence Project.Report Server Project.Name и его расположение в поле Location. Щелкните OK.Добавление источников данных
Visual Studio Solution Explorer щелкните правой кнопкой Shared Data Sources и выберите команду Add New Data Source.General введите TfsReportDS в текстовое поле Name.Type выберите Microsoft SQL Server.Edit.TFSWarehouse.ОК, чтобы добавить источник данных.OLAP:Visual Studio Solution Explorer щелкните правой кнопкой Shared Data Sources и выберите команду Add New Data Source.General введите TfsOlapReportDS в поле Name.Type выберите Microsoft SQL Server.Edit.TFSWarehouse.ОК, чтобы добавить источник данных.Создание нового шаблона
Solution Explorer щелкните правой кнопкой Reports и выберите команды Add и New Item.Report.OK.Редактирование шаблона
Report Designer не открывается автоматически, откройте отчет для редактирования, дважды щелкнув его в Solution Explorer.Dataset выберите вариант New Dataset.TestDataSet.TFSOlapReportDS (shared) .OK.Build (прямо под списком Dataset ), после чего выберите Team System.Теперь вы можете изменять отчет, перетаскивая меры и измерения из дерева Dataset на панели Query и Filter. Макет шаблона изменяется на вкладке Layout. Предварительно просмотреть отчет можно на вкладке Preview.
Примечание Вы, конечно, можете использовать построитель отчетов ( Report Builder ), который имеется на сайте отчетов команды, но этот инструмент не очень хорошо поддерживается сценариями отчетов Visual Studio, поэтому работать с ним не рекомендуется.
Дополнительные ресурсы
Вы можете создавать пользовательские отчеты, подключив Microsoft Office Excel® напрямую к кубу TFS Reporting OLAP. Excel позволяет отображать данные отчета в форме сводных таблиц или сводных диаграмм.
Создание отчета в форме сводной таблицы Excel
Excel.Data выберите команду PivotTable and PivotChart Report.External Data Source.Next.Get Data.OLAP Cubes .New Data Source и щелкните OK.Microsoft SQL Server 2005 Analysis Services 9.0 OLE DB.Connect.Analysis Server.TFSRTM.Next.TFSWarehouse и щелкните Finish.Code Churn, Work Items, Test Result ) и щелкните OK.OK, чтобы вернуться в мастер Pivot Table and Pivot Chart Wizard.Finish, чтобы добавить сводную таблицу на лист. Перетащите столбцы и измерения в сводную таблицу из списка PivotTable Field List.Ниже приведен пример отображения количества строк для каждого командного проекта на сервере:
Code Churn.TeamProject.TeamProject в раздел Column Fields сводной таблицы.Total Lines в раздел Data Items сводной таблицы.Дополнительные ресурсы
Чтобы лучше понимать тенденции развития проекта, воспользуйтесь плановыми снимками отчета. Кроме того, они позволяют сохранить важные информационные точки проекта.
Плановое создание снимка отчета
Team Explorer правой кнопкой щелкните Reports и выберите команду Show Report Site.Properties.History.После создания расписания вы сможете просматривать отчеты на вкладке History данного отчета. Там же можно создавать снимки вручную.
Подписки на отчеты используются для генерации отчетов и их экспорта в общий ресурс. Подписки можно настроить на перезапись старых отчетов. Вы также вольны создавать набор отчетов в течение некоторого времени, чтобы просмотреть снимки данных проекта.
Создание подписки на отчет
Team Explorer щелкните правой кнопкой Reports и выберите команду Show Report Site.Subscriptions.New Subscription, чтобы создать новую подписку.Для добавления новых отчетов в существующий шаблон процесса применяется инструмент .
Добавление нового отчета
Visual Studio щелкните Team и выберите Team Foundation Server Settings.Process Template Manager.Process Template Manager выберите шаблон процесса, который хотите изменить, и щелкните Download.Process Template Manager выберите расположение на локальном диске и щелкните Save.Process Editor:Visual Studio раскройте меню Team.Process Editor и щелкните Open Process Template.Open Process Template fileset перейдите к загруженному шаблону процесса, а затем щелкните Open. В окне Visual Studio откроется файл ProcessTemplate.xml.Name (имя) для методологии, к которой вы применяете настройки.Process Template Explorer щелкните Reports.Add.Report Detail диалогового окна Report введите имя отчета..rdl , который хотите добавить в поле File Name. Остальные поля оставьте без изменений. Не следует также вносить изменения в данные, содержащиеся на вкладках Properties и Parameters.DataSources введите источники данных. Стандартные источники данных для шаблонов процесса, поставляющихся с TFS, - /TfsOlapReportDS и /TfsReportDS.OK.Дополнительные ресурсы
Process Editor при настройке типов рабочих элементов вы найдете в разделе "Как настроить шаблон процесса в Visual Studio Team Foundation Server " этого курса.Для анализа состояния проекта используется отчет . В нем показано, насколько быстро команда справляется с работой и как темп работы изменяется ото дня ко дню.
Просмотр состояния приложения
Team Explorer разверните узел проекта, щелкните правой кнопкой Reports и выберите команду Show Report Site.Velocity .Для анализа качества приложения используйте отчет Quality Indicators. В нем собраны результаты, ошибки, данные о покрытии кода тестами и изменяемости кода.
Анализ качества приложения
Team Explorer разверните узел проекта, щелкните правой кнопкой Reports и выберите команду Show Report Site.Quality Indicators.Для просмотра оставшейся части работы используется отчет Remaining Work. В нем показано, сколько работ выполнено и закрыто и сколько работы еще предстоит выполнить. Опираясь на эти сведения, вы сможете примерно рассчитать дату завершения работы над кодом.
Просмотр оставшейся части работы
Team Explorer разверните узел проекта, щелкните правой кнопкой Reports и выберите команду Show Report Site.Remaining Work.Если вы используете шаблон процесса MSF CMMI, отчет Builds позволит вам просматривать результаты тестов BVT. В этом отчете содержится список имеющихся сборок, а также сведения об их качестве и другая информация.
Просмотр состояния сборки
Team Explorer разверните узел проекта, щелкните правой кнопкой Reports и выберите команду Show Report Site.Builds.Для просмотра ошибок используется отчет Bugs by Priority, отображающий соотношение высокоприоритетных и низкоприоритетных ошибок. Отчет Quality Indicators универсален - он применяется для просмотра результатов тестов, ошибок, покрытия кода тестами и изменяемости кода.
Просмотр ошибок и результатов тестов
Team Explorer разверните узел проекта, щелкните правой кнопкой Reports и выберите команду Show Report Site.Bugs by Priority для просмотра ошибок или отчет Quality Indicators для просмотра результатов тестов.Для сравнения запланированной и реально выполненной работы используйте отчет Unplanned Work. Он отображает полную работу в сравнении с оставшейся работой, а также отделяет запланированные задачи от внеплановых.
Просмотр отчета Unplanned Work
Team Explorer разверните узел проекта, щелкните правой кнопкой Reports и выберите команду Show Report Site.Unplanned Work.Для определения владельца последней редакции файла воспользуйтесь историей файла в окне Source Control Explorer.
Определение пользователя, изменившего файл последним
Source Control Explorer выберите нужный файл.View History.History просмотрите историю изменений, включая их автора.Дополнительные ресурсы
Чтобы найти все изменения, внесенные в код проекта конкретным разработчиком, пользуйтесь командой TF History. Вот как выглядит команда, отображающая все изменения, внесенные пользователем Mario:
tf history $/ /r /user:Mario
Ключ $/ используется для организации поиска по всему хранилищу. Чтобы ограничить область поиска только вашим командным проектом, задайте параметр $/Имя Командного Проекта.
Дополнительные ресурсы
При помощи истории файла исходного кода можно из окна Source Control Explorer находить изменения, внесенные в файл.
Определение всех изменений, внесенных в файл
Source Control Explorer выберите нужный файл.View History.History просмотрите историю изменений.Дополнительные ресурсы
Если во время возврата после правки с набором изменений был связан рабочий элемент, вы сможете просматривать эти изменения на вкладке Links рабочего элемента.
Просмотр изменений кода, связанных с рабочим элементом
Links. Если с рабочим элементом связан набор изменений, он будет перечислен в списке на панели Links.Дополнительные ресурсы
Для просмотра подробностей автоматической генерации кода используется отчет Quality Indicators. В нем собраны результаты, ошибки, данные о покрытии кода тестами и изменяемости кода.
Просмотр отчета Quality Indicators
Team Explorer разверните узел проекта, щелкните правой кнопкой Reports и выберите команду Show Report Site.Quality Indicators.В качестве альтернативы вы можете генерировать отчет об изменяемости кода в Excel. Дополнительные сведения содержатся в разделе "Как создать новый отчет в Excel" этой лекции.
Создавайте отчеты по различным показателям рабочей области, подключив Excel напрямую к кубу OLAP TFS Reporting. С помощью Excel отобразите данные отчета в форме сводных таблиц или сводных диаграмм.
Создание сводной таблицы Excel
Excel.Data выберите команду PivotTable and PivotChart Report.External Data Source.Next.Get Data.OLAP Cubes .New Data Source и щелкните OK.Microsoft SQL Server 2005 Analysis Services 9.0 OLE DB.Connect.Analysis Server.TFSRTM.Next.TFSWarehouse и щелкните Finish.Code Churn и щелкните OK.OK, чтобы вернуться в мастер Pivot Table and Pivot Chart Wizard.Finish, чтобы добавить сводную таблицу на лист.При помощи списка PivotTable Field List перетащите в сводную таблицу столбцы и меры.
Подсчет файлов в каждом командном проекте
TeamProject.TeamProject в раздел Page Fields сводной таблицы.FileName.FilePath в раздел Row Fields сводной таблицы.Team Project в разделе Page Fields.
Обратите внимание на количество отображенных строк. Это и есть количество файлов.Подсчет строк в каждом командном проекте
TeamProject.TeamProject в раздел Column Fields сводной таблицы.Total Lines в раздел Data Items сводной таблицы.Подсчет командных проектов, находящихся на сервере
TeamProject.TeamProject в раздел Row Fields сводной таблицы.Дополнительные ресурсы
В этом разделе
Доступ к системе управления версиями
Visual Studio.Администрирование
Team Foundation Server на другой сервер.Ветвление, метки и слияние
Сборки
TFS производить непрерывную сборку.Возврат после правки и соответствующие политики
Отладка, извлечение и блокировка
TFS.Совместное использование кода
Зависимости
Распределенная и удаленная разработка
TFS через Интернет.TFS -прокси.Миграция
Visual SourceSafe.Управление проектом и рабочей областью
Безопасность
TFS.Отложенные правки
Visual Studio.Чтобы получить доступ к системе управления версиями Microsoft® Visual Studio® 2005 Team System (VSTS) Team Foundation Server (TFS) , работая на клиентах под управлением других систем, воспользуйтесь следующими способами:
Microsoft Source Code Control Interface (MSSCCI) ;Интеграция при помощи MSSCCI
Ниже приведен список клиентов, способных работать с системой управления версиями TFS через поставщика MSSCCI:
Microsoft Visual Studio .NET 2003.Microsoft Visual C++® 6 SP6.Microsoft Visual Basic® 6 SP6.Microsoft Visual FoxPro ® 9 SP1.Microsoft Access™ 2003 SP2.Microsoft SQL Server™ Management Studio.Sparx Systems Enterprise Architect 61.Sybase PowerBuilder 105.Toad for SQL Server 2.0.Загрузить провайдер .
Интеграция при помощи продуктов сторонних производителей
Для следующих клиентов существуют решения интеграции, предлагаемые независимыми производителями:
Eclipse.Linux.Apple Macintosh.HTML.Чтобы получить доступ к системе управления версиями ).
Чтобы получить доступ к системе управления версиями ).
Пользовательская интеграция
На сегодняшний день, решений интеграции для других клиентов не существует. Вы можете получить доступ к TFS либо из командной строки, либо создав собственное интегрирующее решение.
Чтобы автоматизировать работу с командной строкой, используйте
Дополнительные ресурсы
Автоматизация наиболее распространенных задач, связанных с управлением версиями, осуществляется с помощью инструмента командной строки tf. exe. Он позволяет выполнять те же действия, что и Source Control Explorer, включая операции управления исходным кодом ( add, check-in, и т. д.), ветвление, создание отложенных правок, манипуляции с рабочей областью и основные административные функции.
Основные плюсы работы с данным инструментом - автоматизация часто повторяющихся действий и возможность создания расписания действий, выполнение которых происходит при наступлении определенных событий, или при помощи Windows. Кроме того, в командной строке доступны следующие действия:
Чтобы правильно установить пути и других переменные среды, следует запускать инструмент из окна командной строки Visual Studio 2005 или выполнить пакетный файл Vsvars32, который, как правило, расположен в папке Диск:\Program Files\Microsoft Visual Studio 8\Common7\Tools.
Инструмент Tf.exe устанавливается в составе клиента TFS и по умолчанию расположен в папке C:\Program Files\Microsoft Visual Studio 8\Common 7\IDE.
При запуске инструмента командной строки следует задать имя сервера при помощи параметра /s. Далее приведен пример команды, отображающей файлы в системе управления исходным кодом, расположенной на сервере YourTFSServer: tf.exe dir /s:YourTFSServer
Дополнительные ресурсы
Автономный режим работы системой управления версиями TFS не поддерживается. Чтобы все-таки поработать автономно, вы должны в точности выполнить следующие действия:
Свойства (Properties) , снимите флажок Только чтение (Read-only) и щелкните OK. То же действие можно выполнить с помощью команды attrib -r.Добавьте или удалите файлы, с которых сняли метку "только для чтения". Не переименовывайте файлы, потому что инструмент TFTP online не способен отличить операцию переименования ( rename ) от операции удаления ( delete ) в сочетании с операцией добавления ( add ).
Примечание Команда Tfpt online ищет удаленные файлы только при указании соответствующего параметра, поскольку это довольно продолжительная операция.
TFPT online, вернувшись в оперативный режим работы. Для этого нужно ввести в командной строке TFTP online. Эта команда проверит рабочую область на предмет наличия записываемых файлов и определит, какие изменения следует отправить на сервер. Если вы удалили какие-либо файлы, задайте параметр /delete. Затем инструмент отобразит окно оперативного режима, в котором можно выбрать, какие изменения следует перенести в вашу рабочую область.Важно! Во время автономной работы нельзя переименовывать файлы.
Дополнительные ресурсы
Team Foundation Server на другой сервер.Чтобы подключить к работе нового разработчика, предоставьте ему доступ к соответствующему командному проекту и связанному с ним сайту Microsoft Office SharePoint®. Чтобы разработчик мог просматривать отчеты, предоставьте учетной записи разработчика доступ к SQL Server Reporting Services.
Предоставление доступа к командному проекту
Visual Studio с учетной записью, входящую в группу администраторов Team Foundation.Team Explorer, если его там еще нет.Team Project Settings и выберите команду Group Membership.Project\Contributors, щелкните Properties и добавьте в эту группу учетную запись нового разработчика.Примечание Члены группы Contributors обладают набором типичных разрешений, требующихся разработчику, включая возможность добавлять, изменять и удалять элементы командного проекта и выполнять сборки.
Предоставление доступа к сайту SharePoint
Site Settings.Administration щелкните Manage Users.Add Users.Contributor и щелкните кнопку Next.Finish.Примечание Члены группы Contributors обладают набором типичных разрешений, требующихся разработчику, включая возможность добавлять, изменять и удалять элементы командного проекта и выполнять сборки. Если вам нужно ограничить доступ разработчика к некоторым решениям Visual Studio или к некоторым папкам командного проекта, задайте разрешения на уровне папки или файла.
Предоставление доступа к SQL Server Reporting Services
Properties.Security.New Role Assignment.Windows вашего разработчика, выберите вариант Browser и щелкните OK.Примечание Членство в группе Browser позволяет разработчику просматривать отчеты и подписываться на них.
Дополнительные ресурсы
Если разработчик покинул проект, убедитесь, что удалили его рабочую область. Выполнение этой операции не только обеспечивает безопасность проекта, но и приводит к удалению всех незавершенных изменений разработчика и снятию всех установленных им блокировок.
Примечание Если к командному проекту применена
Чтобы выяснить, какие файлы были заблокированы разработчиком, выполните следующую команду:
tf workspaces /owner:domain\devuser /computer:* /server:servername
Чтобы удалить рабочую область и
tf workspace /delete workspacename;domain\devuser /s:servername
Затем удалите учетную запись разработчика из групп безопасности, внеся изменения в три области:
TFS Войдите в Visual Studio с учетной записью из группы администраторов Team Foundation. В окне Team Explorer щелкните правой кнопкой нужный проект, раскройте подменю Team Project Settings, выберите команду Group Membership и удалите ученую запись разработчика из соответствующих групп (как правило, Contributors).SharePoint Войдите на сайт команды, расположенный по адресу http://server/sites/ИмяВашегоПроекта/default.aspx, с учетной записью администратора. Щелкните Site Settings, Manage Users и удалите учетную запись разработчика.SQL Server Reporting Services Войдите на административный сайт SQL Server Reporting Services с учетной записью администратора. Сайт расположен по адресу http://server/reports. Щелкните имя командного проекта, перейдите на вкладку Properties, затем на вкладку Security и удалите учетную запись разработчика.Дополнительные ресурсы
Вы можете предоставлять разрешения в пределах дерева исходного кода. Для этого в обозревателе Source Control щелкните правой кнопкой папку или файл и выберите команду Properties. Перейдите на вкладку Security, выберите группу пользователей, разрешения которой хотите изменить, и внесите нужные исправления. Можно также установить разрешения с помощью утилиты командной строки tf.exe с параметром Permissions.
Вы вольны назначать разрешения на доступ к системе управления исходным кодом для отдельных папок и файлов, однако по умолчанию разрешения внутри дерева исходного кода наследуются от разрешений, примененных к папке проекта. Если разработчики являются членами группы Project\ Contributors, они могут читать, изменять, возвращать после правки, присваивать метки и блокировать файлы исходного кода. Чтобы ограничить доступ к подмножеству папок или файлов исходного кода в командном проекте, например, позволить разработчикам работать только над определенными файлами в проекте, задайте разрешения на уровне папки или файла.
Дополнительные ресурсы
Система Team Foundation Server не поддерживает ни копирование сервера из одного расположения в другое, ни зеркалирование. Вы можете создавать и восстанавливать резервные копии всего сервера, перемещать оборудование сервера в новый домен или выполнить обновление до раздельной системы развертывания. Нельзя осуществлять частичное перемещение, например, переместить одни проекты и оставить другие.
Система Team Foundation Server поддерживает три типа переноса:
Перенося Team Foundation Server, учитывайте следующие моменты:
TFS, все клиенты должны подключаться к нему по новому имени.Microsoft Office, связанные с запросами. Документы привязаны к серверу, для которого были созданы. Это относится ко всем документам Microsoft Office, формируемым при помощи запросов и создаваемым автоматически в узле Documents во время разработки проекта.TFS существовали локальные учетные записи. Вам предстоит решить, как воссоздавать их: как локальные учетные записи на перенесенном сервере TFS или как доменные учетные записи в новом домене перенесенного TFS.TFS существовали доменные учетные записи, и вы перемещаете TFS в другой домен, у которого нет доверительных отношений с первоначальным доменом. Решите, что лучше: воссоздать учетные записи на перенесенном TFS как локальные, или создать доменные учетные записи в новом домене перенесенного сервера TFS.Следует проверить сервер после переноса, убедившись, что во время переноса не произошло серьезных ошибок. Тестирование должно охватывать следующие аспекты:
Дополнительные ресурсы
При помощи меток вы объединяете файлы и папки в наборы для проведения операций над ними в будущем. Метки используются для ветвления, слияния, сравнения или получения файлов. Метка представляет собой маркер, к которому можно вернуться позднее при выполнении перечисленных выше операций.
Присвоение метки файлу или папке
Apply Label.Choose Item Version уточните имя файла или папки, выберите версию файла или папки, которую хотите пометить, и щелкните OK, чтобы применить метку.При применении меток следует учитывать следующее:
Source Control Explorer, автоматически видны в корневой папке проекта, внутри которого они были созданы. Нельзя создать две метки с одинаковыми именами в одной зоне видимости.Team Build автоматически присваивает метки набору файлов, задействованному в любой создаваемой ею сборке.Поиск существующей метки
File откройте подменю Source Control, затем выберите команду Label, щелкните Find Label и перейдите в расположение метки.Find Label изменить или удалить ее.Дополнительные ресурсы
Чтобы создать ветвь, используйте Source Control Explorer или команду tf branch из командной строки.
Для реализации ветвления из Source Control Explorer щелкните правой кнопкой папку самого высокого уровня с исходным кодом вашего проекта, выберите команду Branch и укажите расположение и имя конечной папки, поясняющее назначение ветви, например, MyProject_Release1.0_Branch.
Чтобы выполнить ветвление из командной строки Visual Studio 2005, используйте команду tf branch, например: tf branch C:\MyProject $/MyProject_Release1.0_Branch
Ветви следует использовать, только если вам нужно изолировать параллельную разработку. При этом вам придется периодически переносить изменения в основную ветвь, что влечет за собой дополнительные расходы и требует разрешения конфликтов. Не выполняйте ветвление без необходимости.
Дополнительные ресурсы
Ветви - механизм изоляции. Они используются, чтобы позволить нескольким пользователям работать над одними и теми же файлами одновременно. При разработке способа ветвления следует рассмотреть типичные сценарии и избрать стратегию, опираясь на размер и структуру команды, периодичность выпусков и требования к стабильности сборок. Ниже приведены типовые сценарии ветвления:
Не выполняйте ветвление без необходимости, поскольку оно добавит работы по обслуживанию дополнительного дерева исходного кода и по слиянию. Большинство команд разработчиков, создающих коммерческие приложения ( LOB ), работают по короткому циклу выпуска и не нуждаются в ветвлении. Команды разработчиков, работающие с более продолжительными циклами, например, независимые поставщики ПО, нуждаются в ветвлении чаще.
Дополнительные ресурсы
Перед выпуском, когда вы готовы стабилизировать сборку, создайте ветвь выпуска.
После ветвления структура папок будет выглядеть примерно так:
Main - главная ветвь сборки.Source.Releases - контейнер для ветвей выпусков.Release 1 - ветвь выпуска.Source.Учитывайте следующие рекомендации по работе с ветвью выпуска:
Main ), а затем создайте ветвь выпуска ( Release ), целью которой будет стабилизация приложения перед выпуском.Ветвь Release применяется для внесения конкретных исправлений и изменений, требующихся для стабилизации сборки перед выпуском. Параллельно в ветвях Development или Main может продолжаться разработка следующих версий приложения. В них также могут понадобиться стабилизирующие изменения, внесенные вами в ветви Release. После создания окончательной сборки выпуска, перенесите изменения из ветви Release в ветви Development или Main.
Дополнительные ресурсы
Для поддержки ранее выпущенных сборок используйте ветви сопровождения. Они очень похожи на ветви выпусков, но существуют более продолжительное время.
Примерно так будет выглядеть структура ветвей, после того как вы выпустите приложение и создадите ветвь для его сопровождения:
Main - Главная ветвь сборки.Source.Releases - контейнер для ветвей выпусков.Release 1 - ветвь сопровождения.Source.Учитывайте следующие рекомендации по работе с ветвью сопровождения:
Ветви сопровождения используются для поддержки предыдущих версий приложения. Вы можете перенести изменения в главную ветвь сборки или оставить их исключительно в ветви сопровождения.
Дополнительные ресурсы
Во избежание ошибок сборки проводите активную разработку в ветви Development, а общую сборку - в ветви Main. Примерно так будет выглядеть структура ветвей после создания ветви разработки Development:
Development - ветвь разработки.Source.Main - главная ветвь сборки.Source.Учитывайте следующие рекомендации по работе с ветвью разработки:
Main и Development, чтобы сделать ежедневные сборки более предсказуемыми. Стоит также подумать об ужесточении политики возврата после правки.Main должна быть доступна для чтения и записи разработчикам, отвечающим за слияние и сборку. Остальные получают разрешения только на чтение.Development должна быть доступна всем для чтения и записи.Main - ежедневно.Development - непрерывная сборка.Main проводятся испытания целостности, производительности и безопасности.Development проводятся беглое тестирование, а также испытания функций.Используйте ветвь Main для интеграции изменений, внесенных в ветви разработки. В ветви Development следует выполнять всю активную разработку с последующим переносом в ветвь Main изменений, не приводящих к ошибкам сборки.
Дополнительные ресурсы
Используйте ветвь функций для стабилизации разработки отдельных компонентов и функций.
После создания ветвей функций структура папок будет выглядеть примерно так:
Development - контейнер для ветвей функций.Source.Source.Source.Main - главная ветвь сборки.Source.Учитывайте следующие рекомендации по работе с ветвью функции:
Main или папки отдельных групп (в больших проектах).Ветвление позволяет вести разработку функций параллельно. При этом вся активная разработка выполняется в ветвях функций, а последующая интеграция кода - в ветви Main.
Дополнительные ресурсы
Используйте ветви команд для изоляции критических ошибок в командах. После создания ветвей команд структура папок будет выглядеть примерно так:
Development - контейнер для ветвей команд.Team 1 - ветвь команды.Source.Team 2 - ветвь команды.Source.Main - главная ветвь сборки.Source.Учитывайте следующие рекомендации по работе с ветвями команд:
Не пренебрегайте ветвлением команд, чтобы команды могли работать над своими задачами одновременно. Ветви помогают изолировать ошибки команды, а также позволяют командам двигаться к различным вехам. Вся активная разработка должна проводиться в ветвях команд с последующим переносом в главную ветвь ( Main ). Внутри ветвей команд можно также создавать ветви функций.
Дополнительные ресурсы
Используйте ветви внешних зависимостей для изоляции критических ошибок во внешних зависимостях.
После создания ветвей внешних зависимостей структура папок может выглядеть примерно так:
External - ветвь внешней зависимости.Source.Main - главная ветвь сборки.Source.Учитывайте следующие рекомендации по работе с ветвью внешней зависимости:
External ) для изоляции этих изменений.Ветвь внешней зависимости следует использовать для экспериментальных изменений во внешних зависимостях перед переносом этих изменений в ветвь Main. Стоит также изолировать команду разработчиков от критических ошибок, вызванных внешними зависимостями, например, заголовочными файлами или библиотеками.
Дополнительные ресурсы
Создайте архивную папку для хранения старых выпусков, которые уже нет смысла поддерживать. После создания архивной ветви структура папок будет выглядеть примерно так:
Main - главная ветвь сборки.Source.Releases - контейнер для ветвей выпусков.Release 2 - ветвь сопровождения.Source.Release 1 - архивная ветвь.Source.Перемещая ветви из папки Releases в архив, вы разгружаете папку Releases и одновременно сохраняете старые выпуски. Это не создание новой ветви, а, скорее, перемещение старой ветви в новую папку.
Дополнительные ресурсы
Слияние заключается в переносе изменений из одной ветви в другую. Его можно выполнять, используя возможности обозревателя Source Control или команду tf merge. Слияние выполняется по набору изменений, метке, дате или версии. Чтобы приступить к слиянию, щелкните правой кнопкой ветвь в Source Control и выберите команду Merge. Мастер Source Control Merge Wizard поможет выбрать целевую ветвь (в которую будет выполнено слияние).
В зависимости от структуры ветвей изменения можно переносить вверх по иерархии, вниз по иерархии или поперек иерархии. При поперечном слиянии выполняется слияние без основы. Для выполнения последнего вам придется воспользоваться командой tf merge, поскольку слияние без основы в Visual Studio не поддерживается. Слияние без основы позволяет переносить файлы, не имеющих связей по ветви или слиянию. После проведения слияния без основы необходимые связи устанавливаются, и следующие слияния уже будут иметь основу. Вам по-прежнему придется выполнять их из командной строки, однако число конфликтов слияния сократится.
Имейте в виду, что слияние вдоль иерархии - от родительской к дочерней ветви или от дочерней к родительской ветви - завершается с меньшим количеством конфликтов, чем слияние поперек иерархии. Иерархия ветвей основана на родительских и дочерних ветвях и может отличаться от физической структуры, которую вы видите в Source Control. Например:
Физическая структура.
Development - ветвь разработки.Main - главная ветвь сборки.Releases - контейнер для ветвей выпусков.Release 1 - ветвь выпуска.Main.Development.Release 1.Дополнительные ресурсы
Слияние без основы производится при помощи команды tf merge /baseless из командной строки Visual Studio 2005.
В следующем примере команды выполняется слияние без основы из исходной ветви в целевую. Параметр /recursive используется для рекурсивного слияния всех файлов и папок, находящихся в указанной папке:
merge /baseless <<путь_к_источнику>> <<конечный_путь>> /recursive
Например,
tf merge /baseless c:\data\proj1 c:\data proj2 /recursive
Процесс переноса элементов ветвей, не являющихся прямыми ветвями друг друга, называется слиянием без основы ( baseless merge ). Слиянием без основы можно считать слияние изменений между двумя ветвями выпусков, находящимися на одном уровне, но не имеющих общей родительской ветви. Слияние без основы выполнимо только из командной строки; из Visual Studio его осуществить нельзя.
Когда выполняется слияние без основы, у TFS нет никакой информации о связи между файлами в ветвях. Например, переименование файла будет расценено, как удаление из ветви одного файла и появление в ней другого. Поэтому вам придется разрешать вручную больше конфликтов, чем при обычном слиянии. Тем не менее, с подобным разрешением конфликтов вы столкнетесь только один раз. В процессе слияния без основы TFS записывает его историю и устанавливает связи между папками и файлами. При этом последующие слияния все равно должны будут выполняться из командной строки.
Дополнительные ресурсы
Для разрешения конфликтов слияния используйте инструментарий слияния Visual Studio. Обнаружив конфликт в процессе слияния, вы можете разрешить его автоматически или вручную. Разрешая конфликт вручную, вы вольны сохранить изменения из исходной ветви, сохранить изменения из целевой ветви или разрешить конфликт при помощи инструмента слияния. Необходимость в разрешении конфликтов возникает при выполнении слияния ветвей, извлечении файлов в рабочую область или возврате новых версий файлов. Существуют три типа конфликтов:
get при попытке перезаписать редактируемый файл. Большинство конфликтов может быть разрешено автоматически.Личного вмешательства требует только конфликт версий. Чаще всего ручное разрешение конфликтов происходит в следующих сценариях:
TFS не известны связи файлов ветвей.Инструментарий слияния отображает подробности каждого конфликта и позволяет выбрать изменения, которые следует сохранить после слияния. Вы можете сохранить изменения источника или целевого файла, объединить изменения или вручную модифицировать окончательную версию, осуществив ввод непосредственно в файл.
Разрешив все конфликты в файле, сохраните окончательную версию как незавершенное изменение в целевой ветви.
Будьте осторожны во время слияния: при этом легко допустить ошибки, которые приведут к нестабильности сборки. Завершив слияние, скомпилируйте получившийся исходный код и выполните модульные тесты, чтобы убедиться в отсутствии серьезных ошибок.
Дополнительные ресурсы
Во избежание конфликтов, сделайте следующее:
Просмотр незавершенных изменений
Source Control щелкните правой кнопкой решение, проект, папку или файл, для которых хотите просмотреть незавершенные изменения.View Pending Changes.Этот способ позволяет просмотреть все незавершенные изменения в выбранной области. Кроме того, узнать об отложенных изменениях можно, воспользовавшись инструментом командной строки, например:
tf status /format:detailed /user:*
Эта команда отображает подробную информацию о статусе всех незавершенных изменений, внесенных всеми пользователями. В выводимом списке наряду с изменениями указано, кто и какие файлы извлек.
Дополнительные ресурсы
TFS производить непрерывную сборку.Чтобы проводить сборку непрерывно, осуществляя ее при каждом возврате файла после правки, вам понадобится веб-служба, запускающая процесс сборки. Вы подписываете веб-службу на события возврата после правки, чтобы сборка запускалась каждый раз, когда происходит такое событие. Чтобы запустить сборку, вам также понадобится подходящий тип сборки, в котором определена конфигурация сборки, действия после сборки, выполняемые тесты, расположение, используемое для выгрузки и т. д.
Набор изменений ( changeset ) представляет собой совокупность изменений, связанных с конкретным возвратом после правки. Вот список наиболее распространенных действий, применимых к наборам изменений:
Возврат набора изменений, связанного с рабочим элементом
Visual Studio откройте меню View, раскройте подменю Other Windows и выберите команду Pending Changes.Work Items, чтобы раскрыть список рабочих элементов, связанных с набором.Associate или Resolve (если возврат после правки подразумевает разрешение рабочего элемента).Задание метки набора изменений
Source Control щелкните правой кнопкой папку с командным проектом и выберите команду Apply Label.Version выберите вариант Changeset, введите номер в поле Changeset number и щелкните OK.Apply Label введите имя метки и комментарий. Щелкните OK.Просмотр свойств набора изменений
Производится с помощью команды tf changeset. Далее приведен пример команды, отображающей в диалоговом окне Details for Changeset свойства набора изменений под номером 1234: tf changeset 1234
В этом диалоговом окне вы можете просмотреть файлы исходного кода, содержащиеся в наборе изменений, а также комментарии и примечания. Кроме того, можно просмотреть связанные с набором рабочие элементы и все предупреждения, сгенерированные политиками во время возврата набора изменений на сервер.
Изменение свойств набора изменений
Используйте команду tf changeset, чтобы изменить комментарии и примечания, связанные с набором изменений. Приведенная ниже команда вызывает диалоговое окно Details for Changeset со свойствами набора под номером 1234 и обновляет поле комментария.
tf changeset /comment:"Этот комментарий гораздо лучше предыдущего." 1234
Далее приведен пример команды, которая обновляет примечания с именами экспертов по коду и безопасности, связанных с набором изменений 1234.
tf changeset /notes:"Code Reviewer"="C Davis";"Security Reviewer"="F Smith" 1234
Отмена набора изменений
Чтобы откатить набор изменений и удалить его с сервера управления исходным кодом, используется команда Tfpt rollback из комплекта Team Foundation Power Tool. В следующем примере производится откат набора изменений под номером 1234.
TFPT rollback /changeset:1234
Эта команда открывает окно Roll Back Changeset, в котором можно выбрать файлы из набора изменений для отката.
Дополнительные ресурсы
Чтобы обеспечить соответствие всего возвращаемого на сервер кода заданным стандартам программирования, используйте политики возврата после правки.
По умолчанию, доступны следующие политики:
Code Analysis Требует выполнения анализа кода перед возвратом.Test Policy Требует проведения тестов перед возвратом.Work Items Требует, чтобы с возвратом был связан один или несколько рабочих элементов.По умолчанию политика обеспечивает проведение проверки как управляемого, так и неуправляемого кода. В управляемом коде статически анализируется соответствие стандартным правилам проектирования, глобализации,
Чтобы настроить политику анализа кода при возврате после правки, выполните следующие действия:
Team Explorer щелкните правой кнопкой ваш командный проект, раскройте подменю Team Project Settings и выберите команду Source Control.Check-in Policy и Add.Check-in Policy выберите вариант Code Analysis и щелкните OK.Enforce Code Analysis For Managed Code укажите требуемые правила в списке Rule settings for Managed Code Analysis .OK.Важно! Хотя описанная процедура обеспечивает применение настроенной политики при каждом возврате файла исходного кода после правки, разработчики всегда могут перекрыть политику. Чтобы отслеживать перекрытие политики, следите за соответствующими событиями.
Вы вольны создать собственные политики возврата после правки, позволяющие задавать определенные стандарты качества в зависимости от конкретного проекта, например:
C#, чтобы подавить предупреждения документации XML.XML -документация.Чтобы создать надстройки пользовательских политик, которые будут отображаться в диалоговом окне Add Checkin Policy, используйте функции расширяемости из комплекта Visual Studio Team Foundation .
Дополнительные ресурсы
Чтобы перекрыть политику возврата после правки, задайте параметр Override policy failure and continue check-in в диалоговом окне Policy Failure. Перекрыть политику возврата после правки волен любой пользователь, обладающий разрешением на возврат файлов.
Чтобы проследить за перекрытием политики возврата после правки, воспользуйтесь службой событий Team Foundation .
Дополнительные ресурсы
Для отмены возврата файла используется команда rollback из комплекта Team Foundation Power Tools. Эта команда возвращает файл к его предыдущей версии. Команда rollback позволяет выполнить откат сразу всего набора изменений, но можно также выбирать для отката лишь некоторые файлы из набора. Это очень удобно, когда нужно отменить ошибочно возвращенное изменение файла или возвращенные изменения привели к серьезным конфликтам сборки.
Отмена возврата файла
\Program Files\Microsoft Team Founda-tion Server Power Tools.TFPT rollback filename.csПримечание Если вам известен номер набора изменений, содержащего правку, которую вы хотите отменить, укажите его в команде, как показано ниже:
TFPT rollback filename.cs /changeset:54
rollback запросит подтверждение на обновление рабочей области. Щелкните кнопку Yes в информационном окне Roll Back Changeset. После этого в рабочую область будут переданы файлы с сервера.Find Changeset. Введите критерий поиска или просто щелкните кнопку Find. Найдите и выделите набор изменений, содержащий правку, которую вы хотите отменить, и щелкните Roll Back. Откроется окно Roll Back Changeset.Roll Back.Примечание Если имя файла указать в командной строке, то из всего набора будет выбран только он.
Отменяя возврат после правки командой TFPT rollback, учитывайте следующие соображения:
TFPT определяет расположение рабочих областей следующими способами. Если вы указали путь к файлу в качестве аргумента, для поиска рабочей области используется он. Если вы не указали путь к файлам, в качестве рабочей области используется локальная папка, если для нее есть сопоставление. Чтобы гарантировать, что инструмент будет работать в нужной рабочей области, запустите команду из локально сопоставленной папки.rollback отложите ( shelve ) незавершенные изменения, которые хотите сохранить, а остальные отмените или запишите на сервер.Merge. Первоначально предпринимается попытка автоматического слияния. В случае неудачи для разрешения конфликта вызывается инструмент слияния. Если вы щелкнете кнопку Auto-Merge All, будет произведена попытка выполнить автоматическое слияние всех элементов, находящихся в списке слияния. Инструмент слияний не вызывается.Дополнительные ресурсы
Для создания пользовательской политики возврата после правки используется модель надстройки, предоставленная средой политики ( policy framework ).
Пользовательская политика создается для реализации ваших собственных правил, например, чтобы все пользователи при возврате после правки добавляли комментарии или соответствующим образом использовали регулярные выражения.
Надстройки используются как в процессе определения политики, так и в процессе ее оценки. Надстройки устанавливаются и как автономные утилиты, и как части отдельных приложений. Они регистрируются в среде политики, чтобы их можно было загружать по мере надобности.
Надстройка политики должна предоставлять следующие интерфейсы:
IPolicyDefinition Методы, используемые в процессе определения требований политики к командным проектам.IPolicyEvaluation Методы, используемые в процессе оценки соответствия требованиям политики во время возврата после правки. Принимают возвращаемое содержимое и анализируют его на предмет соответствия определенной политике.Вы можете упаковать несколько надстроек политик в один файл сборки. Единственное требование - реализовать надстройки как отдельные классы.
Примечание Данные интерфейсы отображены в классе PolicyBase. В качестве альтернативы применению интерфейсов IPolicyDefinition и IPolicyEvaluation вы можете использовать производный класс из PolicyBase.
Дополнительные ресурсы
Visual Studio Team Foundation Server " этого курса.TFS.Для синхронизации компьютера с сервером управления версиями используется команда tf get. С ее помощью вы легко синхронизируете свою работу с остальными разработчиками и всегда будете иметь дело с новейшими версиями файлов. Чтобы загрузить все файлы, а не только обновленные, запустите в окне командной строки Visual Studio 2005 следующую команду: tf get /all
При запуске этой команды перезапись всех записываемых локальных файлов, имеющихся на вашем компьютере, не производится. Если вы хотите перезаписать локальные записываемые файлы для полной синхронизации вашего компьютера с сервером, используйте ключ /force, как показано в примере: tf get /force
Эта команда перезаписывает все локальные записываемые файлы за исключением тех, для которых у вас есть незавершенные правки. Если у вас имеются незавершенные правки файла, которые вам хотелось бы сохранить, перед синхронизацией возвратите их на сервер или отложите командой shelve.
Чтобы провести синхронизацию из Visual Studio, выполните следующие действия:
Team Explorer дважды щелкните папку Source Control, правой кнопкой щелкните сервер или командный проект и выберите команду Get Specific Version.Overwrite writable files that are not checked out и Force get of file versions already in workspace.Type выбран вариант Latest Version и щелкните кнопку Get.Чтобы полностью синхронизировать компьютер с сервером управления версиями, не задавайте в Visual Studio параметр Get Latest Version. Эта команда загружает только те файлы, которых нет в вашей рабочей области, и не перезаписывает записываемые файлы, извлеченные в локальную папку. Таким образом, синхронизация компьютера с сервером фактически не выполняется.
Дополнительные ресурсы
Чтобы подготовить файл к редактированию, сначала следует получить его последнюю версию из системы управления исходным кодом Team Foundation Server, после чего извлечь файл для редактирования.
Подготовка файла для редактирования
Source Control Explorer выберите файл, щелкните его правой кнопкой мыши и выберите команду Get Latest Version. Это приведет к загрузке последней версии файла в рабочую область на вашем компьютере. Пока она будет доступна только для чтения.Check Out for Edit.None, чтобы разрешить другим пользователям извлекать и возвращать файл одновременно с вами.Как правило, рекомендуется использовать именно этот тип блокировки, так как большинство возникающих при этом конфликтов может быть разрешено автоматически.
Примечание Не путайте получение последней версии файла ( Get Latest Version ) и его извлечение для редактирования ( Check Out for Edit ). Это разные операции, и они должны выполняться отдельно. В этом TFS отличается от Microsoft Visual SourceSafe.
Выбирая тип блокировки, учитывайте следующие соображения:
None позволяет избежать задержек, связанных с невозможностью одновременной работы над одним и тем же файлом.Check Out, вы лишаете других пользователей возможность извлекать и возвращать файл. Это фактический запрет на редактирование файла, который может привести к замедлению разработки. При этом у вас появляется возможность применять изменения к БД управления исходным кодом, не опасаясь изменений, сделанных другими пользователями.Check In позволяет другим пользователям извлекать файл для редактирования, но не разрешает возвращать его. Этот вариант также гарантирует вам бесконфликтное возвращение ваших правок.Дополнительные ресурсы
Если у вас имеется исходный код, используемый в нескольких командных проектах, вы вольны управлять им из проекта команды-владельца или создать командный проект специально для общего исходного кода.
Для разработчиков, использующих общий исходный код, существует два варианта действий:
Установка ссылки на код из общего расположения
В проектах, использующих общий код, можно создать сопоставление между общим расположением и рабочими областями на клиентских компьютерах. Конфигурация, объединяющая исходный код в общей папке с командными проектами, создается на стороне клиентов.
Преимущество этого способа состоит в том, что изменения, вносимые в общий исходный код, переносятся при каждом извлечении новейшего исходного кода в рабочую область. Допустим, у вас есть два командных проекта - Client и Shared Code. В проекте Shared Code расположен общий исходный код. Чтобы установить ссылки на код в общем расположении, эти проекты используют единый путь на диске клиента, как показано в примере:
c:\TestProject\Clientc:\TestProject\Shared CodeВ обоих проектах имеются сопоставления с этими локальными путями.
| Папка системы управления исходным кодом | Локальная папка |
|---|---|
$/Client |
c:\TestProject\Client |
$/Shared Code |
c:\TestProject\Shared Code |
Дополнительную информацию вы найдете в статье "Working with multiple team projects in Team Build" по адресу http://blogs.msdn.com/manishagar-wal/archive/2005/12/22/506635.aspx.
Ветвление общего кода
Из проектов, использующих общий код, можно выполнить ветвление из общего расположения. Конфигурация, объединяющая исходный код в общей папке с командными проектами, создается на стороне сервера.
Отличие от предыдущего варианта состоит в том, что изменения общего исходного кода переносятся в процессе слияния ветвей. Таким образом, принятие решения о переносе изменений из общего исходного кода принимается более явным образом.
Допустим, у вас есть два командных проекта - Client и Shared Code. В проекте Shared Code расположен общий исходный код. Для ветвления кода из общего расположения выполните следующие действия:
Source Control щелкните правой кнопкой корневую папку проекта Shared Code.Branch.Branch укажите в поле Target корневую папку командного проекта Client. Щелкните OK.Дополнительные ресурсы
Управление общими двоичными файлами очень похоже на управление общим исходным кодом: главное - решить, где вы собираетесь хранить двоичные файлы и как будет организован общий доступ к ним.
Существуют следующие варианты хранения общих двоичных файлов:
Ветвление общих двоичных файлов в проект
Source Control правой кнопкой щелкните корневую папку проекта с общими двоичными файлами.Branch.Branch укажите в поле Target корневую папку клиентского командного проекта. Щелкните OK.Как при использовании рабочей области, так и при использовании ветвления следует соблюдать соглашения об именах, позволяющие точно определять расположение общих двоичных файлов в проекте, например:
Main.Source - код проекта.Lib - общие двоичные файлы.Дополнительные ресурсы
Как правило, URL веб-службы в рабочей среде отличается от ее URL в средах разработки и тестирования. Чтобы облегчить управление веб-службами, значение URL нужно указывать в пользовательском файле конфигурации, который может изменяться отдельными разработчиками и тестировщика-ми, не затрагивая главный конфигурационный файл App.config. Для этого следует присвоить свойству URL Behavior ссылки на веб-службу значение Dynamic. Ссылайтесь на URL веб-службы при помощи пользовательского файла конфигурации.
По умолчанию при добавлении веб-ссылки Visual Studio присваивает указанному свойству значение Dynamic.
Проверка значения свойства URL Behavior
Solution Explorer разверните список веб-ссылок.URL Behavior каждой ссылки присвоено значение Dynamic.Указание URL веб-службы в пользовательском файле конфигурации
При первом добавлении веб-ссылки файл App.config выглядит примерно так:
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.
ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral,
PublicK eyToken=b77a5c561934e089" >
<section name=" SomeService.Properties.Settings"
type="System. Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections> <applicationSettings>
<YourProject.Properties.Settings>
<setting name="SomeService_ localhost _Service" serializeAs="String">
<value>http://localhost/someservice/Service.asmx</value> </setting> </
YourProject.Properties.Settings>
</applicationSettings>
</configuration>
В этом файле есть конфигурационный новый раздел с адресом веб-службы, заданным Visual Studio при создании этого прокси.
Создание файла User.config
Solution Explorer щелкните правой кнопкой проект, содержащий ссылку на веб-службу, раскройте подменю Add и выберите команду New Item.Application Configuration File , измените имя на User.config и щелкните Add.App.con-fig в файл User.config. Этот файл должен содержать только параметры, которые изменяются во время выполнения. Удалите директиву <?xml> и элемент <configuration> , если они имеются, как показано в примере:<YourProject.Properties.Settings> <setting name="SomeService_localhost_Service" serializeAs="String"> <value>http://localhost/someservice/Service.asmx</value> </setting> lt;/YourProject.Properties.Settings>
Solution Explorer щелкните правой кнопкой файл User.config, выберите команду Properties и присвойте свойству Copy to Output Directory значение Copy if newer.Каждый разработчик задает в файле User.config ссылку на нужный ему URL веб-службы.
Создание в файле App.config ссылки на файл User.config при доступе к URL веб-службы
<YourProject.Properties.Settings> главного файла конфигурации приложения добавьте атрибут configSource="user.config" . При достижении <YourProject.Properties.Settings> . Теперь файл App.config должен выглядеть примерно так:<?xml version="1.0" encoding="utf-8" ?>
<configuration> <configSections>
<sectionGroup name="applicationSettings" type="System.
Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089" >
<section name="SomeService.Properties.Settings" type="System. Configuration.ClientSettingsSection,
System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="fal se" />
</sectionGroup> </configSections>
<applicationSettings>
<YourProject.Properties.Settings configSource="user.config">
</YourProject.Properties.Settings>
</applicationSettings>
</configuration>
В предыдущем примере элемент YourProject представляет собой имя проекта, содержащего ссылку на веб-службу Убедитесь, что элемент <SomeService.Properties.Service> в файле App.config пуст.
Учитывайте следующие соображения:
User.config. Затем щелкните файл в окне Solution Explorer правой кнопкой и выберите команду Under Pending Changes, чтобы не переносить файл в систему управления исходным кодом. Теперь каждый разработчик (и тестовая команда) сможет привязаться к конкретному URL с помощью собственного файла User.config.User. config, например, для тестирования или производства. Этими файлами должны распоряжаться пользователи, ответственные за управление соответствующими средами. Такие файлы User.config, используемые при испытаниях и в производстве, не должны храниться в составе проектов веб-служб - они должны находиться в других областях системы управления исходным кодом.User.config следует хранить в системе управления исходным кодом. В нем может содержаться либо только корневой элемент (не элемент <setting> ), либо указание на стандартное положение веб-службы. Файл User.config нужен для работы системы конфигурирования. Важно понимать, что при использовании этого механизма файл User.config обязательно должен быть в наличии. Кто-то из команды должен отвечать за правильную работу среды во время создания сборок для рабочих выпусков и для тестирования. При сборке соответствующий файл User.config должен быть извлечен из системы управления исходным кодом и скопирован в определенное расположение, чтобы система MSBuild могла его найти.Дополнительные ресурсы
Далее объясняется, как хранить и устанавливать ссылку на строку подключения БД в пользовательском файле конфигурации.
Хранение строк подключения БД в пользовательском файле конфигурации
configSource="user.config" в элемент <connectionStrings>, как показанов примере:> <configuration> <connectionStrings configSource="user.config"/> </configuration>
User.config (расположенный в той же папке, что и главный файл онфигурации приложения) и добавьте в него такой же элемент <connectionStrings> . Обратите внимание, что приведенная ниже строка подключения ссылается на локальную базу данных.<configuration>
<connectionStrings>
<add name="DBConnStr" connectionString="server=localhost;
Integrate d Security=SSPI;database=Accounts"/>
</connectionStrings>
</configuration>
onnectionStrings класса System.Configuration.ConfigurationManager. приложении Win Form вы должны явно добавить ссылку на System. Configuration.dll.using System.Configuration;
private string GetDBaseConnectionString()
{
return ConfigurationManager.ConnectionStrings["DBConnStr"]. ConnectionString;
}
User.config устанавливается вместе с кодом приложения. Для этого в окне Solution Explorer щелкните правой кнопкой мыши файл User.config, выберите команду Properties и присвойте свойству Copy to Output Directory значение Copy if newer.Не добавляйте пользовательский файл конфигурации в систему управления исходным кодом. При этом каждый разработчик (и тестовая команда) сможет задавать строку подключения с помощью собственного файла User.config. Система управления исходным кодом может содержать файлы User.config, например, для тестирования или производства. Этими файлами должны распоряжаться пользователи, ответственные за управление соответствующими средами. Такие файлы User.config, используемые при испытаниях и в производстве, не должны храниться в составе проектов БД - они должны находиться в других областях системы управления исходным кодом. Файл User.config нужен для работы системы конфигурирования.
Совет По умолчанию во время добавления решения файл User.config автоматически добавляется в систему управления исходным кодом. Чтобы избежать этого, при первом возврате файлов после правки сбросьте флажок User.config. Чтобы гарантировать непопадание этого файла в систему управления исходным кодом, щелкните его правой кнопкой в окне Solution Explorer и выберите команду Under Pending Changes.
Важно понимать, что при использовании этого механизма файл User. config обязательно должен быть в наличии. Кто-то из команды должен отвечать за правильную работу среды во время создания сборок для рабочих выпусков и для тестирования. При сборке соответствующий файл User.config должен быть извлечен из системы управления исходным кодом и скопирован в определенное расположение, чтобы система MSBuild могла его найти.
Дополнительные ресурсы
TFS через Интернет.TFS -прокси.Доступ к TFS через Интернет можно организовать одним из трех способов:
VPN );TFS через обратный прокси, например, Microsoft Internet Security and Acceleration (ISA) ;TFS в экстрасети.Используйте первый способ, если вы и так обеспечиваете поддержку удаленных пользователей при помощи VPN. Он относительно прост в реализации, обладает понятной системой безопасности, обеспечивает удаленный доступ ко всем функциям TFS и позволяет использовать для повышения производительности TFS Proxy При таком способе доступа TFS находится во внутренней сети, а внешние пользователи получают к нему доступ по VPN. Внутренние пользователи обладают прямым доступом к TFS.
Если поддержка удаленных пользователей осуществляется без доступа к VPN или к домену, используйте сценарий с обратным прокси. Этот способ сложнее осуществить, однако он позволяет удаленным пользователям получать доступ к TFS, расположенному во внутренней сети, без использования VPN. В этой реализации TFS находится во внутренней сети, а один или несколько обратных прокси-серверов, например, , доставляют на TFS запросы клиентов из Интернета.
Сценарий с экстрасетью подходит в ситуациях, когда вы поддерживаете достаточно большое количество удаленных пользователей, например, сайт разработки какого-либо сообщества. При этом удаленные пользователи работают в специально предназначенной для них реализации TFS. Данный подход обеспечивает максимальное разделение между удаленными пользователями и внутренними ресурсами сети. При этом доступ к TFS имеют только внешние клиенты, а сам TFS расположен в экстрасети за пределами брандмауэра.
Если у вас есть удаленный офис с несколькими клиентами, осуществляющими доступ к Team Foundation Server через Интернет, установите в удаленном офисе Team Foundation Server Proxy. Это увеличит производительность за счет кеширования файлов исходного кода на прокси-сервере. Если вы поддерживаете одного клиента, удаленно подключающегося к TFS, настройте его на подключение непосредственно к TFS.
Дополнительные ресурсы
TFS содержатся в лекции 17 этого курса.Установите и настройте Team Foundation Server Proxy в удаленном офисе. Это позволит повысить производительность за счет кеширования файлов системы управления исходным кодом на прокси-сервере.
Чтобы настроить и оптимизировать производительность TFS -прокси, выполните следующие действия:
Убедитесь, что функция кеширования включена, и проверьте счетчики производительности кеша. Чтобы иметь представление о производительности прокси, счетчики производительности (устанавливаемые по умолчанию) и журналы регистрации событий (ошибки и предупреждения) на рокси-сервере следует проверять периодически.
Примечание Прокси TFS сохраняет статистику производительности кеша в XML -файле ProxyStatistics.xml. Вы можете изменить интервал, с которым происходит сохранение статистики. Файл ProxyStatistics.xml расположен в подпапке App_Data папки установки прокси.
executionTimeout в файле Web.config. Значение по умолчанию равно одному часу - <httpRuntime executionTimeout="3600"/> .Дополнительные ресурсы
TFS содержатся в лекции17 этого курса.Visual SourceSafe.Для переноса исходного кода из выполните следующие действия.
Примечание Для выполнения этих действий нужно быть членом группы администраторов Team Foundation.
VSS . Приготовьтесь к переходу, создав резервные копии базы данных VSS и убедившись в том, что файлы возвращены в систему. Запустите инструмент Visual SourceSafe Analyze для выявления и разрешения конфликтов целостности данных в существующей БД.Анализ проектов. Запустите конвертер (инструмент командной строки VSSConverter.exe ), передав ему с ключом analyze имя XML -файла, содержащего необходимые параметры, как показано в примере:
VSSConverter analyze conversionsettings.xmlПример
XML -файла параметров:<?xml version="1.0" encoding="utf-8"?>
<SourceControlConverter>
<ConverterSpecificSetting> <Source name="VSS">
<VSSDatabase name="c:\VSSDatabase"></VSSDatabase>
</Source> <ProjectMap>
<Project Source="$/MyFirstProject">
</Project> <Project Source="$/MySecondProject"></Project>
</ProjectMap> </ConverterSpecificSetting>
</SourceControlConverter>
Файл параметров содержит имя БД . В атрибуте name задается имя папки, содержащей .ini -файл хранилища исходного кода. Элементы <Project> определяют пути к проектам в БД , которые вы собираетесь преобразовать. Для миграции всей БД введите <Project Source="$/"></Project> .
Команда analize инструмента VssConverter.exe создает файл usermap.xml. Добавив сопоставления в этот файл, вы можете изменить имена, связанные с историей версий и другие, с регистрационных имен на регистрационные имена TFS Windows.
Перемещение проектов. Выберите папки, которые хотите перенести, и запустите инструмент VSSConverter.exe с аргументом migrate, как показано в примере:
VSSConverter migrate conversionsettings.xml
Вы снова передаете команде XML -файл параметров настройки, но на этот раз с двумя важными дополнениями:
<?xml version="1.0" encoding="utf-8"?>
<SourceControlConverter> <ConverterSpecificSetting>
<Source name="VSS">
<VSSDatabase name="c:\VSSDatabase">
</VSSDatabase> </Source> <ProjectMap>
<Project Source="$/MyFirstProject"
Destination="$/MyTeam_ ProjectOne"></Project>
<Project Source="$/MySecondProject"
Destination="$/MyTeam_ ProjectTwo"></Project> </ProjectMap>
</ConverterSpecificSetting>
<Settings>
<TeamFoundationServer name="YourTFSServerName"
port="PortNumber" protocol="http">
</TeamFoundationServer>
</Settings>
</SourceControlConverter>
Обратите внимание на дополнительный атрибут Destination в элементах <Project> . Значение этого атрибута указывает на командный проект TFS (созданный вами заранее). Элемент <Settings> содержит подробности подключения уровня приложений TFS.
Дополнительные ресурсы
Вы можете вручную экспортировать файлы из прежней системы управления версиями, а затем импортировать их в Team Foundation Server. Чтобы сохранить историю и другие атрибуты системы, воспользуйтесь объектной моделью Team Foundation Server, чтобы написать собственный инструмент миграции.
В настоящий момент корпорация Microsoft ведет работу по созданию конвертера ClearCase. О выпуске конвертера будет объявлено дополнительно в блоге TFS Migration по адресу http://blogs.msdn.com/tfs_migration. Существует также конвертер, созданный компанией , совместимый с GNU и Visual SourceSafe (.
Дополнительные ресурсы
Чтобы спланировать структуру проекта, рассмотрите типичные стратегии организации проектов и выберите ту, что максимально подходит для вас, исходя из размеров предприятия, серверных ограничений и принятых правил работы. Проект олицетворяет самый крупный блок работы, который может существовать в вашей организации. Предпочтение следует отдавать одиночным проектам. Несколько проектов нужно использовать, только имея на то серьезные основания, например, изменения в команде или наличие значительных различий между выпусками, когда вы не хотите переносить в новый выпуск нежелательные рабочие элементы (ошибки и т. п.). Основанием для создания нескольких проектов может также стать изменение в шаблоне процесса.
Основным преимуществом одного проекта перед несколькими проекта и является упрощение процедуры переноса требований, функций, сцена иев и ошибок из выпуска в выпуск.
Основные вопросы, которые вам предстоит ответить, таковы:
Далее описаны типичные структуры проектов.
Один проект на все приложение
Используется один проект, содержащий все версии приложения. Внутри проекта для отдельных выпусков создаются ветви.
TFS.Один проект на один выпуск
Создается новый проект для каждой версии вашего приложения.
TFS из одного проекта в другой. Рабочие элементы можно копировать в другой проект только по одному. Если вам захочется переместить наборы элементов, придется делать это вручную или написать собственную утилиту.TFS.Выбирая стратегию, имейте в виду следующее:
Team Foundation Server способна вместить около 500 проектов icrosoft Solution Framework (MSF) , основанных на шаблоне процесса gile Software Development (MSF Agile) , или 250 проектов на шаблоне процесса MSF CMMI. Создавая собственный процесс или настраивая существующий, помните, что на масштабируемость сервера оказывает огромное влияние схема рабочего элемента. Чем сложнее схема, там меньше проектов сможет поддерживать сервер.Дополнительные ресурсы
Структура дерева исходного кода состоит из комбинации структуры папок, файлов и ветвей. Внутри главной ветви свою работоспособность в самых различных по размеру командах доказала следующая структура папок и файлов:
Main - контейнер для всех объектов, необходимых для передачи проекта аказчику.Source - контейнер для всех объектов, необходимых для выполнения борки.Code - контейнер для исходного кода.Shared Code - контейнер для исходного кода, используемого совместно с другими проектами.Unit Tests - контейнер для модульных тестов.Lib - контейнер для двоичных зависимостей.Docs - контейнер для документации, поставляющейся с проектом.Installer - контейнер для исходного кода и двоичных файлов программы установки.Tests - контейнер, содержащий результаты испытаний, проводимых тестовой командой.При ветвлении папки Main структура папок и файлов будет скопирована в новую ветвь, например:
Development - ветвь разработки.Source - контейнер для всех объектов, необходимых для выполнения борки.Code - контейнер для исходного кода.Shared Code - контейнер для исходного кода, используемого совместно с другими проектами.Unit Tests - контейнер для модульных тестов.Lib - контейнер для двоичных зависимостей.Main - ветвь интеграции.Source - контейнер для всех объектов, необходимых для выполнения борки.Code - контейнер для исходного кода.Shared Code - контейнер для исходного кода, используемого совместно с другими проектами.Unit Tests - контейнер для модульных тестов.Lib - контейнер для двоичных зависимостей.Docs - контейнер для документации, поставляющейся с проектом.Installer - контейнер для исходного кода и двоичных файлов программы установки.Tests - контейнер, содержащий результаты испытаний, проводимых тестовой командой.Для отображения файлов и папок системы управления исходным кодом, расположенных на сервере, определите на вашем локальном диске сопоставление рабочей области.
Создание сопоставления рабочей области для проекта, которого еще нет на жестком диске
Source Control Explorer выделите корневую папку исходного кода.Get Latest Version.Изменение сопоставления рабочей области проекта, уже имеющегося на жестком диске
File команды Source Control и Workspaces.Manage Workspaces добавьте, удалите или отредактируйте существующую рабочую область.Просмотр существующего сопоставления рабочей области
Source Control Explorer выделите папку с исходным кодом.Properties. В разделе Local Name будет отображено сопоставление рабочей области на локальном диске.Создавая сопоставления рабочей области, используйте следующие рекомендации:
$/ MyTeamProject ) с папкой на локальном диске, имеющей то же имя, например, C:\TeamProjects. Вся структура локальной папки создается автоматически и будет в точности повторять структуру в системе управления исходным кодом.$/MyTeam-Project ) с одной и той же папкой на локальном компьютере. Создавайте сопоставления в папке Мои документы (хотя это удлиняет путь) или разработайте соглашение об именах для папок на локальном компьютере (например, C:\TeamProjects\User1, C:\TeampProjects\User2 и т. д.).Дополнительные ресурсы
Разработчик волен создать две рабочие области: одна из них содержит ссылки на файлы и папки, над которыми работает остальная команда, а вторая - файлы и папки, которые он хочет изолировать. Изолирование может понадобиться, если вы хотите работать с файлами, которые параллельно изменяются где-то еще. Например, им можно пользоваться для работы над рискованными изменениями или при выполнении обзора кода.
Создание второй рабочей области
Source Control Explorer щелкните раскрывающийся список Workpace и выберите команду Workspaces.Manage Workspaces щелкните кнопку Add.Add Workspace введите имя новой рабочей области, например, ИзолированнаяРабота. Добавьте комментарий, напоминающий о цели создания рабочей области.Working folders задайте статус рабочего места Active, определите папку в системе управления исходным кодом, которая будет включена в рабочую область. Это может быть корневая папка командного проекта или любая вложенная папка. Задайте путь на локальном компьютере, в котором будут находиться файлы рабочей области.OK и Close, чтобы создать изолированную рабочую область.Извлечение актуального набора исходного кода для работы в изолированной рабочей области
Source Control Explorer убедитесь, что в раскрывающееся списке Workspace выбрано имя изолированной рабочей области.Get Latest Version.При этом будет выполнено копирование структуры папок и актуального набора файлов с сервера управления исходным кодом в папку на локальном компьютере, отображенную в новой рабочей области.
Дополнительные ресурсы
TFS.Для повышения безопасности канала между рабочей станцией разработчика и TFS используйте протоколы HTTPS и SSL. Настройте TFS так, чтобы использовались подключения только по этим протоколам, но не по HTTP. Для этого сначала следует разрешить протоколы HTTPS и SSL, а затем предпринять дополнительные шаги, чтобы сделать эти протоколы обязательными.
HTTPS и SSL шифруют сетевой трафик между TFS и клиентами Team Foundation, которым необходим доступ к веб-ресурсам Team Foundation Server, включая порталы проектов, отчеты и рабочие элементы.
Дополнительные ресурсы
Чтобы создать резервную копию незавершенных изменений на сервере, создайте отложенные редакции файлов, которые еще не готовы возвратить в систему. При этом исходный код выгружается на сервер, но возврат неоконченной работы, которая может привести к нестабильности сборки, не производится.
Выгрузка отложенных правок на сервер
Solution Explorer щелкните правой кнопкой решение и выберите команду View Pending Changes.Shelve.Shelve.Восстановление работы
File раскройте подменю Source Control и выберите команду Unshelve ).Unshelve.Система Team Foundation Server восстановит все отложенные правки в целевую рабочую область в виде незавершенных изменений, если они не вступают в конфликт с уже имеющимися в рабочей области незавершенными изменениями.
Дополнительные ресурсы
Чтобы отложить редакцию исходного кода для передачи другому члену команды, выполните операцию Get Latest, синхронизовав свою рабочую область с последней версией на сервере. Затем произведите сборку приложения, чтобы убедиться в его компилируемости. Выгрузите исходный код в качестве отложенной правки при помощи обозревателя Source Control. Члену команды, которому предназначается код, остается только загрузить его с помощью команды Unshelve.
Удобно использовать отложенные правки, когда у вас есть неоконченная работа, завершать которую предстоит другому члену команды. Создание отложенной правки облегчает передачу изменений. Синхронизируя последнюю версию кода, вы получаете возможность получить изменения файлов, сделанные за пределами вашей рабочей области.
Выгрузка набора отложенных правок
Source Control Explorer и выберите команду Shelve Pending Changes.Shelve - Source Files в поле Shelve name введите имя набора отложенных правок, например, shelvetest.Shelve.Файлы и папки копируются на сервер управления исходным кодом, откуда их могут извлечь другие члены команды.
При извлечении набора отложенных правок другим членом команды TFS восстанавливает все отложенные правки в целевую рабочую область в качестве незавершенных изменений, если эти правки не вступают в конфликт с незавершенными изменениями, уже имеющимися в рабочей области.
Извлечение набора отложенных правок
File Visual Studio 200 5 раскройте подменю Source Control и выберите команду Unshelve.Owner name введите имя создателя набора отложенных правок (например, ADVENTUREWORKS\JuanGo или просто juango ) и щелкните Find.Results выделите набор отложенных правок, который хотите извлечь в свою рабочую область, и щелкните Details.TFS, сбросьте флажок Preserve shelveset on server.Restore work items and check-in notes, если не хотите вместе с набором правок восстанавливать рабочие элементы и заметки о возврате после правки.Details, выберите набор отложенных едакций или отдельные элементы, которые хотите извлечь в свою рабочую область, и щелкните Unshelve.Дополнительные ресурсы
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.