用于部署应用程序的发布管理工具

每个发布操作使用一个发布管理工具。 例如,命令行运行程序是运行操作的特定可执行文件的工具。 如果你需要执行所提供工具不支持的任务,可以创建自己的自定义工具并将其添加到自定义发布操作中。 工具还可用于部署应用程序的组件。

以下是随 Release Management 提供的工具及其参数的列表:

数据库部署代理 –执行脚本

此工具在特定数据库中执行 SQL 查询。 它基于使用 SQL Server 分发的标准 sqlcmd 可执行文件。 有关此可执行文件的详细信息,请参阅 sqlcmd 文档。 此工具的配置变量包括:

参数

变量

必需

描述

-S

ServerName

SQL 数据库的服务器名称。

-i

ScriptName

要执行的脚本的名称。

-b

不可用

No

此参数是一个开关。 如果它存在,则表示批处理将在出现错误时中止。

Reporting Services 部署代理

此工具部署 Reporting Services 报表和相关对象。 它基于自定义发布管理可执行文件。 此工具的配置变量包括:

参数

变量

必需

描述

-s

serverUrl

Reporting Services 服务器的完整 URL。

-l

itemLocation

是(如果选择多个项)

项的位置。 如果指定此参数,则必须提供文件夹 (-f)。

-f

folder

是(如果选择多个项)

项的文件夹。 如果指定此参数,则必须提供项位置 (-l)。

-t

要处理的项类型。 允许的值包括:

  • 报告

  • Picture

-sp

No

用于筛选项的搜索模式的列表。 每个搜索模式必须由逗号或分号分隔(例如 *.bmp;*.jpg)。 如果未指定此参数,则搜索模式将基于选定的项类型 (-t) 如下所示:

  • Report:*.rdl

  • Picture:*.bmp,*.gif,*.jpg,*.jpeg,*.png

-i

是(如果选择单个项)

项文件。 如果指定此参数,则必须提供项名称 (-n)。 必须部署单个项时将使用此参数。 如果是这种情况,则 item location (-l) 和 folder (-f) 参数不得存在。

-n

是(如果选择单个项)

项名称。 如果指定此参数,则必须提供项文件 (-i)。 必须部署单个项时将使用此参数。 如果是这种情况,则 item location (-l) 和 folder (-f) 参数不得存在。

-log

No

物理目录中将生成具有此给定名称的日志文件。

-o

不可用

No

此参数是一个开关。 如果它存在,则意味着目标将在已存在时被覆盖。

-ds ds1,...,dsN

要与项关联的所有数据源的以逗号分隔的完全限定名。 这些值区分大小写。 此选项仅适用于报表。 数据源可采用以下格式:[name:] reference。 Name 是要替换引用的报告中所指定的数据源名称。 reference 是对要用于报表的目标服务器中的数据源的完全限定引用。

MSI 部署代理

此工具将部署 MSI。 它会在安装新产品之前,卸载以前安装的产品。 它基于自定义发布管理 PowerShell 脚本。 此工具的配置变量包括:

参数

变量

必需

描述

-command

不可用

固定值 ./msiexec.ps1。

-MsiFileName

Installer

要安装的 .msi 文件的完整路径(如果需要)和名称。

-MsiCustomArgs

MsiCustomArgs

No

要用于安装 .msi 文件的自定义参数。 这些参数将直接传递给 msiexec 可执行文件。 如果不需要自定义参数,则必须从参数中删除该参数。

-PrevProductName

No

允许用户在安装 .msi 文件之前指定要卸载的上一产品的名称。 默认情况下,系统将使用要安装的 .msi 文件中的产品名。

XCopy 部署代理

此工具可将包位置复制到特定目标。 它基于自定义发布管理批处理脚本。 此工具的配置变量包括:

参数

变量

必需

描述

-source

不可用

指示必须复制所有源位置的固定值

-destination

Installation Path

副本的目标。

命令行运行程序

此工具运行特定的可执行文件。 它基于自定义发布管理 PowerShell 脚本。 此工具的配置变量包括:

参数

变量

必需

描述

-file

不可用

固定值。/RunCommandLine.ps1。

-FilePath

FilePath

要运行的可执行文件的完整路径(如果需要)和文件名。

-Arguments

参数

No

运行可执行文件时所需的参数。

-UserDomain

UserDomain

No

可执行文件必须在特定标识下运行时要使用的用户域。 如果不提供,将使用本地用户 (. \localuser)。

-UserName

UserName

No

可执行文件必须在特定标识下运行时要使用的用户名。

-UserPassword

UserPassword

No

可执行文件必须在特定标识下运行时要使用的用户密码。

Windows 注册表管理器

此工具可操作 Windows 中的注册表信息。 它基于自定义发布管理 PowerShell 脚本。 此工具的配置变量包括:

参数

变量

必需

描述

-command

不可用

固定值 ./ManageWindowsRegistry.ps1。

-Action

操作

要执行的操作。 允许的值包括:

  • CreateKey:创建新的注册表项

  • ModifyKey:修改注册表项或其数据

  • DeleteKey:删除注册表项及其所有值和子项

  • CreateValue:创建位于注册表项下的新注册表值

  • ModifyValue:修改位于注册表项下的注册表值

  • DeleteValue:删除位于注册表项下的注册表值

-OperatingSystemType

No

指示是否在 32 位或 64 位注册表中访问键/值。 如果不提供,默认为 32 位。

-RegistryKey

RegistryKey

注册表项的路径和名称(例如 HKLM\Software\MyKey)。

-RegistryValue

否*

将应用更改的注册表值(例如 MyValue)。 它对于 CreateValue、ModifyValue 和 DeleteValue 是必需的。

-ValueType

No

受影响的值的类型。 接受的值包括:

  • REG_SZ:字符串(如果未指定,则为默认值)

  • REG_QWORD_LITTLE_ENDIAN:Little-Endian 格式的 64 位数字

  • REG_QWORD:64 位数字

  • REG_NONE:没有值

  • REG_MULTI_SZ:多行字符串(由 \0 分隔)

  • REG_LINK:符号链接

  • REG_EXPAND_SZ:具有对环境变量的未扩展引用的字符串

  • REG_DWORD_BIG_ENDIAN:Big-Endian 格式的 32 位数字

  • REG_DWORD_LITTLE_ENDIAN:Little-Endian 格式的 32 位数字

  • REG_DWORD:32 位数字

  • REG_BINARY:任意格式的二进制数据

-RegistryData

No

要应用于值(如果使用 CreateValue 或 ModifyValue)或键的默认值(如果使用 CreateKey 或 ModifyKey)的数据。

-RegistryKeyDestination

否*

使用 ModifyKey 操作重命名注册表项时要使用的注册表项名称。 例如:

  • RegistryKey = HKLM\Software\MyKey

  • RegistryKeyDestination = HKLM\Software\MyModifiedKey(它对于 ModifyKey 是必需的)。

Windows 公共 IO

此工具可在 Windows 下执行公共 IO。 它基于自定义发布管理 PowerShell 脚本。 此工具的配置变量包括:

参数

变量

必需

描述

-command

不可用

固定值 ./ManageWindowsIO.ps1。

-Action

操作

指示要执行的操作:

  • Create:创建新的文件夹

  • Delete:删除文件或文件夹

  • Rename:重命名文件或文件夹

  • Move:移动文件或文件夹

  • Attrib:修改文件或文件夹的特性(包括所有权)

-FileFolderName

FileFolderName

文件或文件夹路径和名称。

-DestinationName

否*

目标名称(用于重命名操作)或文件夹路径和名称(用于移动操作)。对于重命名和移动操作是必需的。

-ReadOnly

No

允许用户设置或重置文件或文件夹的只读特性。

  • +:设置标志

  • -:重置标志

  • 任何其他值:将标志保留原样

-Archive

No

允许用户设置或重置文件或文件夹的存档特性。

  • +:设置标志

  • -:重置标志

  • 任何其他值:将标志保留原样

-System

No

允许用户设置或重置文件或文件夹的系统特性。

  • +:设置标志

  • -:重置标志

  • 任何其他值:将标志保留原样

-Hidden

No

允许用户设置或重置文件或文件夹的隐藏特性。

  • +:设置标志

  • -:重置标志

  • 任何其他值:将标志保留原样

-OwnerDomain

No

表示文件或文件夹的新所有者的域。

-OwnerName

No

表示文件或文件夹的新所有者的名称。

Windows 服务管理器

此工具可管理 Windows 服务。 它基于自定义发布管理 PowerShell 脚本。 此工具的配置变量包括:

参数

变量

必需

描述

-command

不可用

固定值 ./ManageWindowsServices.ps1。

-Action

操作

指示要执行的操作:

  • Create:创建新的服务

  • Config:配置现有服务

  • Delete:删除现有服务

  • Start:启动服务

  • Stop:停止服务

  • Restart:停止并启动服务

-ServiceName

ServiceName

服务的名称。

-ServerName

No

要在其中执行此操作的服务器的名称。 如果未指定此参数,则将使用当前服务器。

-BinPath

否*

服务的二进制路径和名称。 此参数对于 Create 操作是必需的,对于 Config 操作是可选的,而所有其他操作会将其忽略。

-DisplayName

No

将用于此服务的显示名称。 此参数对于 Create 和 Config 操作是可选的,而所有其他操作会将其忽略。

-Description

No

将为服务指定的描述。 此参数对于 Create 和 Config 操作是可选的,而所有其他操作会将其忽略。

-UserName

No

将用于凭据以启动服务的用户名(格式必须为“域\用户”)。 如果提供了此参数,则还必须提供参数 -Password。 如果未提供此参数,则默认情况下将使用 LocalSystem 帐户。 此参数对于 Create 和 Config 操作是可选的,而所有其他操作会将其忽略。

要将凭据重置为 LocalSystem,请输入 LocalSystem 作为用户并输入 "" 作为密码。

-Password

No

为启动服务指定的用户名的密码。 此参数对于 Create 和 Config 操作是可选的,而所有其他操作会将其忽略。

-StartMode

No

服务的启动模式。 默认情况下,将使用 Automatic 创建服务。 选择是:

  • Manual:仅手动启动服务

  • Automatic:服务将在下次重新启动计算机时自动启动

  • Disabled:禁用服务

此参数对于 Create 和 Config 操作是可选的,而所有其他操作会将其忽略。

DACPAC 数据库部署代理

此工具可部署 DACPAC 包。 它基于 SQL Server 命令行实用工具。 针对此可执行文件的可能参数有很多,但此列表仅列出了用于此工具的参数。 有关详细信息,请参阅 SQL 包命令行实用工具。 此工具的配置变量包括:

参数

变量

必需

描述

/Action:

固定值:Publish - 指定将发布的包。

/SourceFile:

FileName

DACPAC 的完整路径(如果需要)和文件名。

/TargetServerName:

ServerName

包发布至的 SQL Server 的名称。

/TargetDatabaseName:

DatabaseName

包发布至的 SQL Server 数据库的名称。

IIS 部署代理

此工具可操作 IIS 对象和设置。 它基于自定义发布管理可执行文件。 此工具的配置变量因要执行的操作类型而异。

对于应用程序池操作:

参数

变量

必需

描述

-Action

指示要执行的操作:

  • CreateApplicationPool

  • ConfigureApplicationPool

  • DropApplicationPool

  • StartApplicationPool

  • StopApplicationPool

  • RecycleApplicationPoo

-ap

应用程序池名称。

-apAllow32Bit

No

该标志指示应用程序池是否必须允许 32 位应用程序。 仅 IIS 7.0、7.5、8.0 和 8.5 允许使用此参数。 允许的值包括:

  • 1 或 True:允许 32 位应用程序

  • 0 或 False:不允许 32 位应用程序

-apIdentUserDomain

No

要用作应用程序池标识的用户域。 仅 IIS 7.0、7.5、8.0 和 8.5 允许使用此参数。 如果未定义此参数,但定义了“IdentityUserName”,则用户将被视为本地用户 (. \localuser)。

-apIdentUserName

No

要用作应用程序池标识的用户名。 仅 IIS 7.0、7.5、8.0 和 8.5 允许使用此参数。 如果未定义此参数,则将忽略“IdentityUserDomain”和“IdentityUserPassword”,并且将使用 IIS 的默认值 (ApplicationPoolIdentity)。

-apIdentUserPassword

No

要用作应用程序池标识的用户密码。 仅 IIS 7.0、7.5、8.0 和 8.5 允许使用此参数。

-apNetVers

No

要用于应用程序池的 .NET Framework 版本。 仅 IIS 7.0、7.5、8.0 和 8.5 允许使用此参数。 允许的值包括:v1.0、v1.1、v2.0 和 v4.0

-apPipelineMode

No

要在应用程序池中使用的托管管道模式。 仅 IIS 7.0、7.5、8.0 和 8.5 允许使用此参数。 允许的值包括:

  • Classic

  • Integrated

-apProcessIdleTimeout

No

进程可在应用程序池中闲置的分钟数。 仅 IIS 7.0、7.5、8.0 和 8.5 允许使用此参数。

-apRecycleKbMemory

No

回收应用程序池之前所使用的内存的最大 KB 数。 仅 IIS 7.0、7.5、8.0 和 8.5 允许使用此参数。

-apRecycleMinutes

No

在回收应用程序池之前等待的固定分钟数。 仅 IIS 7.0、7.5、8.0 和 8.5 允许使用此参数。

- apRecycleSpecificTime

No

回收应用程序池的固定时间。 仅 IIS 7.0、7.5、8.0 和 8.5 允许使用此参数。 所需格式为 HH:MM(例如 23:58 或 01:23)。

-apStartMode

No

要用于应用程序池的启动模式。 仅 IIS 8.0 和 8.5 允许使用此参数。 允许的值包括:

  • OnDemand

  • AlwaysRunning

-AutoStart

No

该标志指示应用程序池是否必须自动启动。 仅 IIS 7.0、7.5、8.0 和 8.5 允许使用此参数。 允许的值包括:

  • 1 或 True:应用程序池将在 Windows 启动时自动启动。

  • 0 或 False:应用程序池将不会在 Windows 启动时自动启动。

-log

No

对于网站操作:

参数

变量

必需

描述

-Action

指示要执行的操作:

  • CreateWebSite

  • ConfigureWebSite

  • DropWebSite

  • StartWebSite

  • StopWebSite

  • RestartWebSite

-sn

网站名称。

-port

否*

网站的端口号。 此参数对于 Create 操作是必需的,而对于 Configure 操作是可选的。

-pd

否*

路由至应用程序发布位置的完整路径。 此参数对于 Create 操作是必需的,而对于 Configure 操作是可选的。

说明说明
确保路径中不存在尾随斜杠。

-ap

No

应用程序池的名称。 如果在创建应用程序池时未定义此参数,将使用默认应用程序池。 此参数对于 Create 和 Configure 操作是可选的。

-EnablePreload

No

IIS 7.0、7.5、8.0 和 8.5 中允许此参数。 该标志指示是否必须预加载网站。 此参数对于 Create 和 Configure 操作是可选的。 允许的值为:

  • 1 或 True:启用预加载

  • 0 或 False:禁用预加载

-AutoStart

No

IIS 7.0、7.5、8.0 和 8.5 中允许此参数。 该标志指示网站是否必须自动启动。 此参数对于 Create 和 Configure 操作是可选的。 允许的值为:

  • 1 或 True:自动启动

  • 0 或 False:不自动启动

-log

No

物理目录中将生成具有此给定名称的日志文件。

对于 Web 应用程序操作:

参数

变量

必需

描述

-Action

指示要执行的操作:

  • CreateWebApplication

  • ConfigureWebApplication

  • DropWebApplication

-ws

要创建的应用程序的名称。

-pd

否*

路由至应用程序发布位置的完整路径。 此参数对于 Create 操作是必需的,而对于 Configure 操作是可选的。

-sn

No

网站名称。 如果未指定此参数,则系统将在创建新的应用程序时使用默认网站。 此参数对于 Create 和 Configure 操作是可选的。

-ap

No

应用程序池的名称。 如果在创建应用程序池时未定义此参数,将使用默认应用程序池。 此参数对于 Create 和 Configure 操作是可选的。

-EnablePreload

No

IIS 7.0、7.5、8.0 和 8.5 中允许此参数。 该标志指示是否必须预加载网站。 此参数对于 Create 和 Configure 操作是可选的。 允许的值为:

  • 1 或 True:启用预加载

  • 0 或 False:禁用预加载

-log

No

物理目录中将生成具有此名称的日志文件。

对于虚拟目录操作:

参数

变量

必需

描述

-Action

指示要执行的操作:

  • CreateVirtualDirectory

  • ConfigureVirtualDirectory

  • DropVirtualDirectory

-vd

虚拟目录的名称。

-pd

否*

虚拟目录的完整路径。 此参数对于 Create 操作是必需的,而对于 Configure 操作是可选的。

-sn

No

网站名称。 如果未指定此参数,则系统将在创建新的应用程序时使用默认网站。 此参数对于 Create 和 Configure 操作是可选的。

-ws

No

Web 应用程序名称。 如果未指定此参数,则系统将在创建新的虚拟目录时使用根 Web 应用程序。 此参数对于 Create 和 Configure 操作是可选的。

-log

No

物理目录中将生成具有此名称的日志文件。

Microsoft Azure VM 管理器

此工具可管理 Microsoft Azure 中的 VM。 它基于自定义发布管理 PowerShell 脚本。 此工具的配置变量包括:

参数

变量

必需

描述

-command

不可用

固定值 ./ControlAzureVM.ps1。

-Command

指示要执行的操作:

  • Start:启动 VM

  • Stop:停止 VM

-ServiceName

ServiceName

VM 所在的 Microsoft Azure 服务的名称。

-Name

名称

Microsoft Azure VM 的名称。

XBAP Deployer

此工具可部署 XBAP 应用程序。 它基于自定义发布管理可执行文件。 此工具的配置变量包括:

参数

变量

必需

描述

-pn

ProjectName

要部署的 XBAP 项目的名称。

-d

Installation Path

XBAP 应用程序的安装路径。

-ml

No

mage 实用工具可执行文件的完整路径。 如果未定义此参数,则此工具将使用提供的路径作为其资源。

-pl

No

要部署的 XBAP 项目所在的完整路径。 如果未指定此参数,则工具将使用执行项目的包位置。

-url

No

如果指定了此参数,系统会将 setup.exe 文件的 URL 替换为指定的 URL。

-cf

No

如果指定了此参数,则它将在更新清单时用作证书名称。

-pwd

No

如果指定了此参数,则它将在更新清单时用作证书密码。

-log

No

物理目录中将生成具有此名称的日志文件。

Microsoft 测试管理器 (MTM) 命令行实用工具

此工具可创建并启动在 MTM(Microsoft 测试管理器)上运行的自动测试。 它基于自定义发布管理 PowerShell 脚本。 此工具的配置变量包括:

参数

变量

必需

描述

-command

不可用

固定值 ./TcmExec.ps1。

-Title

TestRunTitle

创建测试运行时将使用的名称。

-PlanId

PlanId

测试必须在其下运行的测试计划的标识符(测试管理器中定义的唯一 ID)。

-SuiteId

SuiteId

你要运行的套件的标识符(测试管理器中定义的唯一 ID)。

-ConfigId

ConfigId

测试必须在其下运行的测试配置的标识符(测试管理器中定义的唯一 ID)。

-Collection

TFSCollection

将为其执行自动测试的 Team Foundation Server 集合 URL。

-TeamProject

TeamProject

在其中配置自动测试的团队项目的名称。

-TestEnvironment

TestEnvironment

要在其中执行测试的测试环境(测试环境与相应的测试控制器关联)。

-BuildDirectory

BuildDirectory

否*

自动测试的位置。 在 MTM 2010 中,此参数是必需的。 在 MTM 2012 和 2013 中,仍支持此参数,但用户最好使用 BuildDefinition 和 BuildNumber 参数。

-BuildDefinition

否*

允许用户指定包含自动测试的生成定义。 此参数只能与 MTM 2012 一起使用。 如果定义了此参数,还必须指定 BuildNumber 参数。 如果未指定此参数,则测试运行的详细信息中显示的字段“build”将不受测试运行的影响。

-BuildNumber

否*

允许用户指定其放置位置将包含自动测试的生成号。 此参数只能在 MTM 2012 下使用。 如果定义了此参数,还必须指定 BuildDefinition 参数。 如果未指定此参数,则测试运行的详细信息中显示的字段“build”将不受测试运行的影响。

-SettingsName

No

允许用户指定要用于测试运行的设置。 如果未指定此参数,则将使用默认测试设置。

-TestRunWaitDelay

No

允许用户指定对测试控制器进行的每个调用之间的延迟(以秒为单位)。 需要此参数才能允许测试运行在处理测试结果之前完成。 如果未指定此参数,则默认值为 10 秒。

-InconclusiveFailsTests

不可用

No

设置此标志时,如果存在无结论的测试,则将导致部署失败。 默认情况下,无结论的测试将不会导致部署失败。

-RemoveIncludeParameter

不可用

No

设置此标志时,/include 参数将不会追加到测试创建命令。 这意味着,任何具有“活动”之外的状态的测试都将不会包含在测试运行中。

如果自动测试包含在要部署的应用程序所在的生成过程中,则可以使用元数据作为变量值,并将在发布时自动将其替换。 以下是当前可与配置变量配合使用的可用元数据。

变量

变量值元数据

BuildDirectory

$(PackageLocation)

BuildNumber

$(BuildNumber)

BuildDefinition

$(BuildDefinition)

TFSCollection

$(TFSUrlWithCollection)

TeamProject

$(TeamProject)

INI 文件管理器

此工具可修改 .ini 文件的内容,并可创建新的 .ini 文件(如果指定)。 它基于自定义发布管理可执行文件。 此工具的配置变量包括:

参数

变量

必需

描述

-Action

指示要执行的操作:

  • ModifySection

  • RemoveSection

  • CreateKeyValue

  • ModifyKeyValue

  • RemoveKeyValue

-INIFile

INIFileName

.ini 文件名和路径(如果需要)

-SectionName

SectionName

No

要影响的节名称。 如果未指定此参数,则将考虑根节(位于文件开头的第一节之前的所有键都被视为位于根中)。

-NewSectionName

No

新节名称。 如果未指定此参数,则将考虑根节(位于文件开头的第一节之前的所有键都被视为位于根中)。 此参数对于 ModifySection 操作是必需的。

-KeyName

No

要影响的键名称。 此参数对于 CreateKeyValue、ModifyKeyValue 和 RemoveKeyValue 是必需的。

-KeyValue

No

要用于键的值。 当使用 ModifyKeyValue 操作且未指定此参数,但指定了 NewKeyName 时,系统将使用实际值。 如果未指定此参数且未指定 NewKeyName,则该值将为空。

-NewKeyName

No

为键指定的新名称。 仅可用于 ModifyKeyValue 操作。

-CreateFileIfNotExists

No

指示必须创建文件(如果该文件不存在)的工具。

Windows 进程

此工具可取消 Windows 进程。 此工具的配置变量包括:

参数

变量

必需

描述

-command

不可用

固定值 ./WindowsProcess.ps1。

-ProcessName

要取消的 Windows 进程的名称。

-UserName

No

正在运行进程的用户帐户。 如果未指定此参数,则将为所有用户取消进程。

-IsKillProcessTree

No

该标志指示是否必须取消进程树。允许的值为:

  • 1:取消进程树

  • 0 或空:不取消进程树