Defining the Initial Configuration of Lab Management

You can customize a team project's initial security configuration for activities that are performed by using Visual Studio Lab Management. The lab.xml plug-in file specifies the security permissions for lab management activities of all team projects that are created with the same process template. It also specifies the task to upload the default template file for Lab Management, which is named LabDefaultTemplate.xaml. This file is uploaded to the database for the team project.

The following table summarizes the names of the file, the folder, and the plug-in for the process templates for Microsoft Solutions Framework (MSF).

File name:

Lab.xml

Folder name:

Lab

Plug-in name:

Microsoft.ProjectCreationWizard. Lab

Note

You can change the names of the XML file and the folder but not the plug-in. Team Foundation Server does not include a mechanism for the deployment of client-side plug-ins, policies, or other modifications. If you want to deploy this kind of functionality, you must use your own distribution and installation program.

In the Lab.xml file, you specify one or more tasks and their dependencies. The MSF plug-in file specifies one task, which uploads the lab management file, and the permissions that are assigned to specific default groups for Team Foundation. To customize the initial security configuration for Lab Management, see Controlling Access to Functional Areas. For more information about the task, taskXml, and dependency elements, see Defining the Tasks to Process a Plug-in and Defining Dependencies for Task Groups and Tasks in Plug-in Files.

The following code represents the default lab.xml file that is defined for the MSF process templates:

<?xml version="1.0" encoding="utf-8"?>
<tasks>
  <task id="LabTask" name="Create Lab area" plugin="Microsoft.ProjectCreationWizard.Lab" completionMessage="Lab Task completed.">
    <dependencies />
    <taskXml>
      <ProcessTemplate Type="Custom" Filename="Lab\Templates\LabDefaultTemplate.xaml" Description="This is the default Lab process template for this Team Project." ServerPath="$/$$PROJECTNAME$$/BuildProcessTemplates" />
      <permission allow="Read, Create, Write, Edit, Delete, ManagePermissions, ManageChildPermissions, Start, Stop, ManageSnapshots, Pause, ManageLocation, DeleteLocation" identity="$$PROJECTCOLLECTIONADMINGROUP$$" />
      <permission allow="Read, Create, Write, Edit, Delete, ManageChildPermissions, Start, Stop, ManageSnapshots, Pause, ManageLocation, DeleteLocation" identity="[$$PROJECTNAME$$]\$$PROJECTADMINGROUP$$" />
      <permission allow="Read, Create, Write, Edit, Start, Stop, ManageSnapshots, Pause" identity="[$$PROJECTNAME$$]\@@Contributors@@" />
      <permission allow="Read" identity="[$$PROJECTNAME$$]\@@Readers@@" />
      <permission allow="Read, Write, Edit, Start, Stop, ManageSnapshots, Pause" identity="$$BUILDSERVICEGROUP$$" />
    </taskXml>
  </task>
</tasks>

See Also

Concepts

Using a Virtual Lab for Your Application Lifecycle

Controlling Access to Functional Areas

Customizing Functional Areas within a Process Template