共用方式為


用於部署應用程式的 Release Management 工具

每個發行動作都會使用發行管理工具。 例如,[命令列執行器] 就是針對動作執行特定可執行檔的工具。 如果提供的工具不支援您需要執行的工作,可以建立您的自訂工具並將該項工具加入至自訂發行動作。 工具也可用來部署應用程式的元件。

以下清單將列出 Release Management 隨附的工具及其參數:

資料庫部署代理程式 - 執行指令碼

這項工具會在特定的資料庫中執行 SQL 查詢。 它是以隨 SQL Server 散發的標準 sqlcmd 可執行檔為基礎。 如需有關這個可執行檔的詳細資訊,請參閱 sqlcmd 文件。 這項工具的組態變數包括:

參數

變數

強制性

描述

-S

ServerName

SQL 資料庫的伺服器名稱。

-i

ScriptName

要執行的指令碼名稱。

-b

N/A

這個參數是一種切換機制。 如果存在,就表示發生錯誤時,將會中止批次。

Reporting Services 部署代理程式

這項工具會部署 Reporting Services 報表和相關物件。 它是以自訂發行管理可執行檔為基礎。 這項工具的組態變數包括:

參數

變數

強制性

描述

-s

serverUrl

Reporting Services 伺服器的完整 URL。

-l

itemLocation

是 (若為多個項目)

項目的位置。 如果有指定,就必須提供資料夾 (-f)。

-f

folder

是 (若為多個項目)

項目的資料夾。 如果有指定,就必須提供項目位置 (-l)。

-t

要處理的項目類型。 允許的值包括:

  • 報表

  • 圖片

-sp

要用來篩選項目的搜尋模式清單。 每種搜尋模式都必須以逗號或分號分隔 (例如 *.bmp;*.jpg)。 如果未指定此參數,系統將根據選取的項目類型 (-t) 採用下列搜尋模式:

  • Report:*.rdl

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

-i

是 (若為單一項目)

項目檔案。 如果有指定,就必須提供項目名稱 (-n)。 這個參數是在必須部署單一項目時使用。 若是如此,項目位置 (-l) 和資料夾 (-f) 參數就不得存在。

-n

是 (若為單一項目)

項目名稱。 如果有指定,就必須提供項目檔案 (-i)。 這個參數是在必須部署單一項目時使用。 若是如此,項目位置 (-l) 和資料夾 (-f) 參數就不得存在。

-log

系統將在實體目錄中產生具有這個指定名稱的記錄檔。

-o

N/A

這個參數是一種切換機制。 如果存在,就表示目的地已經存在時,將會覆寫目的地。

-ds ds1,...,dsN

要與項目產生關聯之所有資料來源的逗號分隔完整名稱。 這些名稱必須區分大小寫。 這個選項僅適用於報表。 資料來源可以採用 [name:] reference 格式。 Name 就是要取代其參考之報表中指定的資料來源名稱。 Reference 就是目標伺服器中要用於報表之資料來源的完整參考。

MSI 部署代理程式

這項工具會部署 MSI。 它會先解除安裝先前安裝的產品,然後再安裝新的產品。 它是以自訂發行管理 PowerShell 指令碼為基礎。 這項工具的組態變數包括:

參數

變數

強制性

描述

-command

N/A

固定值 ./msiexec.ps1。

-MsiFileName

Installer

要安裝之 .msi 檔案的完整路徑 (如有必要) 和名稱。

-MsiCustomArgs

MsiCustomArgs

要用來安裝 .msi 檔案的自訂引數。 這些引數將直接傳遞給 msiexec 可執行檔。 如果不需要任何自訂引數,就必須從引數中移除此參數。

-PrevProductName

可讓使用者指定要在安裝 .msi 檔案之前解除安裝的先前產品名稱。 根據預設,系統會使用 .msi 檔案中的產品名稱來安裝。

XCopy 部署代理程式

這項工具會將封裝位置複製到特定的目的地。 它是以自訂發行管理批次指令碼為基礎。 這項工具的組態變數包括:

參數

變數

強制性

描述

-source

N/A

固定值,表示必須複製所有來源位置

-destination

Installation Path

複製的目的地。

命令列執行器

這項工具會執行特定的可執行檔。 它是以自訂發行管理 PowerShell 指令碼為基礎。 這項工具的組態變數包括:

參數

變數

強制性

描述

-file

N/A

固定值 ./RunCommandLine.ps1。

-FilePath

FilePath

要執行之可執行檔的完整路徑 (如有必要) 和檔案名稱。

-Arguments

引數

執行可執行檔時所需的引數。

-UserDomain

UserDomain

如果可執行檔必須在特定的識別底下執行,則為要使用之使用者的網域。 如果未提供,將會使用本機使用者 (. \localuser)。

-UserName

UserName

如果可執行檔必須在特定的識別底下執行,則為要使用之使用者的名稱。

-UserPassword

UserPassword

如果可執行檔必須在特定的識別底下執行,則為要使用之使用者的密碼。

Windows 登錄管理員

這項工具會管理 Windows 的登錄資訊。 它是以自訂發行管理 PowerShell 指令碼為基礎。 這項工具的組態變數包括:

參數

變數

強制性

描述

-command

N/A

固定值 ./ManageWindowsRegistry.ps1。

-Action

動作

要執行的動作。 允許的值包括:

  • CreateKey:建立新的登錄機碼

  • ModifyKey:修改登錄機碼或其資料

  • DeleteKey:刪除登錄機碼及其所有值和子機碼

  • CreateValue:建立位於某個機碼底下的新登錄值

  • ModifyValue:修改位於某個機碼底下的登錄值

  • DeleteValue:刪除位於某個機碼底下的登錄值

-OperatingSystemType

指出機碼/值是在 32 位元或 64 位元登錄中存取。 如果未提供此參數,預設值就是 32 位元。

-RegistryKey

RegistryKey

登錄機碼的路徑和名稱 (例如 HKLM\Software\MyKey)。

-RegistryValue

否*

將要套用變更的登錄值 (例如 MyValue)。 這是 CreateValue、ModifyValue 和 DeleteValue 的必要參數。

-ValueType

受影響之值的類型。 接受的值包括:

  • REG_SZ:字串 (如果未指定,則為預設值)

  • REG_QWORD_LITTLE_ENDIAN:採用位元組由小到大格式的 64 位元數字

  • REG_QWORD:64 位元數字

  • REG_NONE:沒有值

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

  • REG_LINK:符號連結

  • REG_EXPAND_SZ:字串,其中包含未展開的環境變數參考

  • REG_DWORD_BIG_ENDIAN:採用位元組由大到小格式的 32 位元數字

  • REG_DWORD_LITTLE_ENDIAN:採用位元組由小到大格式的 32 位元數字

  • REG_DWORD:32 位元數字

  • REG_BINARY:任何形式的二進位資料

-RegistryData

要套用至值的資料 (如果使用 CreateValue 或 ModifyValue),或是要套用至機碼之預設值的資料 (如果使用 CreateKey 或 ModifyKey)。

-RegistryKeyDestination

否*

要在使用 ModifyKey 動作來重新命名登錄機碼時使用的登錄機碼名稱。 例如:

  • RegistryKey = HKLM\Software\MyKey

  • RegistryKeyDestination = HKLM\Software\MyModifiedKey (ModifyKey 的必要參數)。

Windows 通用 IO

這項工具會在 Windows 底下執行通用 IO 工作。 它是以自訂發行管理 PowerShell 指令碼為基礎。 這項工具的組態變數包括:

參數

變數

強制性

描述

-command

N/A

固定值 ./ManageWindowsIO.ps1。

-Action

動作

表示要執行的動作:

  • Create:建立新的資料夾

  • Delete:刪除檔案或資料夾

  • Rename:重新命名檔案或資料夾

  • Move:移動檔案或資料夾

  • Attrib:修改檔案或資料夾的屬性 (包括擁有權)

-FileFolderName

FileFolderName

檔案或資料夾路徑和名稱。

-DestinationName

否*

目的地名稱 (針對 Rename 動作) 或資料夾路徑和名稱 (針對 Move 動作)。這是 Rename 和 Move 動作的必要參數。

-ReadOnly

可讓使用者設定或重設檔案或資料夾的唯讀屬性。

  • +:設定旗標

  • -:重設旗標

  • 任何其他值:讓旗標保持原狀

-Archive

可讓使用者設定或重設檔案或資料夾的封存屬性。

  • +:設定旗標

  • -:重設旗標

  • 任何其他值:讓旗標保持原狀

-System

可讓使用者設定或重設檔案或資料夾的系統屬性。

  • +:設定旗標

  • -:重設旗標

  • 任何其他值:讓旗標保持原狀

-Hidden

可讓使用者設定或重設檔案或資料夾的隱藏屬性。

  • +:設定旗標

  • -:重設旗標

  • 任何其他值:讓旗標保持原狀

-OwnerDomain

代表檔案或資料夾之新擁有者的網域。

-OwnerName

代表檔案或資料夾之新擁有者的名稱。

Windows 服務管理員

這項工具會管理 Windows 服務。 它是以自訂發行管理 PowerShell 指令碼為基礎。 這項工具的組態變數包括:

參數

變數

強制性

描述

-command

N/A

固定值 ./ManageWindowsServices.ps1。

-Action

動作

表示要執行的動作:

  • Create:建立新的服務

  • Config:設定現有的服務

  • Delete:刪除現有的服務

  • Start:啟動服務

  • Stop:停止服務

  • Restart:停止並啟動服務

-ServiceName

ServiceName

服務的名稱。

-ServerName

將執行這個動作之伺服器的名稱。 如果未指定,就會使用目前的伺服器。

-BinPath

否*

服務的二進位路徑和名稱。 這是 Create 動作的必要參數、Config 動作的選擇性參數,而所有其他動作則會忽略此參數。

-DisplayName

將用於此服務的顯示名稱。 這是 Create 和 Config 動作的選擇性參數,而所有其他動作則會忽略此參數。

-Description

將提供給服務的描述。 這是 Create 和 Config 動作的選擇性參數,而所有其他動作則會忽略此參數。

-UserName

將用於啟動服務之認證的使用者名稱 (格式必須是 DOMAIN\USER)。 如果有提供,就必須一併提供 -Password 參數。 如果沒有提供,預設將使用 LocalSystem 帳戶。 這是 Create 和 Config 動作的選擇性參數,而所有其他動作則會忽略此參數。

若要將認證重設為 LocalSystem,請輸入 LocalSystem 做為使用者名稱並輸入 "" 做為密碼。

-Password

要啟動服務之指定使用者名稱的密碼。 這是 Create 和 Config 動作的選擇性參數,而所有其他動作則會忽略此參數。

-StartMode

服務的啟動模式。 根據預設,系統會使用 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

  • RecycleApplicationPool

-ap

應用程式集區名稱。

-apAllow32Bit

指出應用程式集區是否必須允許 32 位元應用程式的旗標。 此參數僅適用於 IIS 7.0、7.5、8.0 和 8.5。 允許的值包括:

  • 1 或 True:允許 32 位元應用程式

  • 0 或 False:不允許 32 位元應用程式

-apIdentUserDomain

要當做應用程式集區之識別使用的使用者網域。 此參數僅適用於 IIS 7.0、7.5、8.0 和 8.5。 如果未定義此參數,但是定義 "IdentityUserName",就會將使用者視為本機使用者 (. \localuser)。

-apIdentUserName

要當做應用程式集區之識別使用的使用者名稱。 此參數僅適用於 IIS 7.0、7.5、8.0 和 8.5。 如果未定義此參數,就會忽略 “IdentityUserDomain” 和 “IdentityUserPassword”,並且使用 IIS 的預設值 (ApplicationPoolIdentity)。

-apIdentUserPassword

要當做應用程式集區之識別使用的使用者密碼。 此參數僅適用於 IIS 7.0、7.5、8.0 和 8.5。

-apNetVers

要用於應用程式集區的 .NET Framework 版本。 此參數僅適用於 IIS 7.0、7.5、8.0 和 8.5。 允許的值包括:v1.0、v1.1、v2.0 和 v4.0

-apPipelineMode

要用於應用程式集區的 Managed 管線模式。 此參數僅適用於 IIS 7.0、7.5、8.0 和 8.5。 允許的值包括:

  • Classic

  • Integrated

-apProcessIdleTimeout

處理序可以在應用程式集區中閒置的分鐘數。 此參數僅適用於 IIS 7.0、7.5、8.0 和 8.5。

-apRecycleKbMemory

回收應用程式集區之前所使用的記憶體 KB 數目上限。 此參數僅適用於 IIS 7.0、7.5、8.0 和 8.5。

-apRecycleMinutes

回收應用程式集區之前經過的固定分鐘數。 此參數僅適用於 IIS 7.0、7.5、8.0 和 8.5。

-apRecycleSpecificTime

回收應用程式集區的固定時間。 此參數僅適用於 IIS 7.0、7.5、8.0 和 8.5。 必要的格式為 HH:MM (例如 23:58 或 01:23)。

-apStartMode

要用於應用程式集區的啟動模式。 此參數僅適用於 IIS 8.0 和 8.5。 允許的值包括:

  • OnDemand

  • AlwaysRunning

-AutoStart

指出應用程式集區是否必須自動啟動的旗標。 此參數僅適用於 IIS 7.0、7.5、8.0 和 8.5。 允許的值包括:

  • 1 或 True:應用程式集區將在 Windows 啟動時自動啟動。

  • 0 或 False:應用程式集區將不會在 Windows 啟動時自動啟動。

-log

若為網站動作:

參數

變數

強制性

描述

-Action

表示要執行的動作:

  • CreateWebSite

  • ConfigureWebSite

  • DropWebSite

  • StartWebSite

  • StopWebSite

  • RestartWebSite

-sn

網站名稱。

-port

否*

網站的通訊埠編號。 這是 Create 動作的強制參數,Configure 動作的選擇性參數。

-pd

否*

已發行應用程式之目標位置的完整路徑路由。 這是 Create 動作的強制參數,Configure 動作的選擇性參數。

注意事項注意事項
確定該路徑中沒有任何結尾斜線。

-ap

應用程式集區的名稱。 如果沒有在建立應用程式集區時定義,則會使用預設應用程式集區。 這是 Create 和 Configure 動作的選擇性參數。

-EnablePreload

允許針對 IIS 7.0、7.5、8.0 和 8.5 使用。 指出是否必須預先載入網站的旗標。 這是 Create 和 Configure 動作的選擇性參數。 允許的值如下:

  • 1 或 True:預先載入已啟用

  • 0 或 False:預先載入已停用

-AutoStart

允許針對 IIS 7.0、7.5、8.0 和 8.5 使用。 指出是否必須自動啟動網站的旗標。 這是 Create 和 Configure 動作的選擇性參數。 允許的值如下:

  • 1 或 True:自動啟動

  • 0 或 False:不自動啟動

-log

系統將在實體目錄中產生具有這個指定名稱的記錄檔。

若為 Web 應用程式動作:

參數

變數

強制性

描述

-Action

表示要執行的動作:

  • CreateWebApplication

  • ConfigureWebApplication

  • DropWebApplication

-ws

要建立的應用程式名稱。

-pd

否*

已發行應用程式之目標位置的完整路徑路由。 這是 Create 動作的強制參數,Configure 動作的選擇性參數。

-sn

網站名稱。 如果未指定,系統將在建立新的應用程式時使用預設網站。 這是 Create 和 Configure 動作的選擇性參數。

-ap

應用程式集區的名稱。 如果沒有在建立應用程式集區時定義,則會使用預設應用程式集區。 這是 Create 和 Configure 動作的選擇性參數。

-EnablePreload

允許針對 IIS 7.0、7.5、8.0 和 8.5 使用。 指出是否必須預先載入網站的旗標。 這是 Create 和 Configure 動作的選擇性參數。 允許的值如下:

  • 1 或 True:預先載入已啟用

  • 0 或 False:預先載入已停用

-log

系統將在實體目錄中產生具有這個名稱的記錄檔。

若為虛擬目錄動作:

參數

變數

強制性

描述

-Action

表示要執行的動作:

  • CreateVirtualDirectory

  • ConfigureVirtualDirectory

  • DropVirtualDirectory

-vd

虛擬目錄的名稱。

-pd

否*

虛擬目錄的完整路徑。 這是 Create 動作的強制參數,Configure 動作的選擇性參數。

-sn

網站名稱。 如果未指定,系統將在建立新的應用程式時使用預設網站。 這是 Create 和 Configure 動作的選擇性參數。

-ws

Web 應用程式名稱。 如果未指定,系統將在建立新的虛擬目錄時使用根 Web 應用程式。 這是 Create 和 Configure 動作的選擇性參數。

-log

系統將在實體目錄中產生具有這個名稱的記錄檔。

Microsoft Azure VM 管理員

這項工具會管理 Microsoft Azure 中的 VM。 它是以自訂發行管理 PowerShell 指令碼為基礎。 這項工具的組態變數包括:

參數

變數

強制性

描述

-command

N/A

固定值 ./ControlAzureVM.ps1。

-Command

表示要執行的動作:

  • Start:啟動 VM

  • Stop:停止 VM

-ServiceName

ServiceName

VM 所在的 Microsoft Azure 服務名稱。

-Name

名稱

Microsoft Azure VM 的名稱。

XBAP 部署器

這項工具會部署 XBAP 應用程式。 它是以自訂發行管理可執行檔為基礎。 這項工具的組態變數包括:

參數

變數

強制性

描述

-pn

ProjectName

要部署的 XBAP 專案名稱。

-d

Installation Path

XBAP 應用程式的安裝路徑。

-ml

mage 公用程式可執行檔的完整路徑。 如果未定義,此工具將會使用工具資源所提供的路徑。

-pl

要部署之 XBAP 專案所在位置的完整路徑。 如果未指定,此工具將會使用執行所在的封裝位置。

-url

如果有指定,系統就會將 setup.exe 檔案的 URL 取代成指定的 URL。

-cf

如果有指定,這就會在更新資訊清單時當做憑證名稱使用。

-pwd

如果有指定,這就會在更新資訊清單時當做憑證密碼使用。

-log

系統將在實體目錄中產生具有這個名稱的記錄檔。

Microsoft Test Manager (MTM) 命令列公用程式

這項工具會建立和啟動在 MTM (Microsoft Test Manager) 上執行的自動化測試。 它是以自訂發行管理 PowerShell 指令碼為基礎。 這項工具的組態變數包括:

參數

變數

強制性

描述

-command

N/A

固定值 ./TcmExec.ps1。

-Title

TestRunTitle

將在建立測試回合時使用的名稱。

-PlanId

PlanId

必須用以執行測試之測試計劃的識別碼 (如 Test Manager 中定義的唯一 ID)。

-SuiteId

SuiteId

您想要執行之套件的識別碼 (如 Test Manager 中定義的唯一 ID)。

-ConfigId

ConfigId

必須用以執行測試之測試組態的識別碼 (如 Test Manager 中定義的唯一 ID)。

-Collection

TFSCollection

自動化測試將執行的目標 Team Foundation Server 集合 URL。

-TeamProject

TeamProject

已設定自動化測試之 Team 專案的名稱。

-TestEnvironment

TestEnvironment

要用以執行測試的測試環境 (測試環境與對應的測試控制器相關聯)。

-BuildDirectory

BuildDirectory

否*

自動化測試的位置。 在 MTM 2010 中,這是必要參數。 在 MTM 2012 和 2013 中,仍然支援這個參數,但是使用者最好使用 BuildDefinition 和 BuildNumber 參數。

-BuildDefinition

否*

可讓使用者指定包含自動化測試的組建定義。 這個參數只能搭配 MTM 2012 使用。 如果有定義,就必須一併指定 BuildNumber 參數。 如果未指定,顯示在測試回合詳細資料中的 [組建] 欄位將不會受到測試回合影響。

-BuildNumber

否*

可讓使用者指定其置放位置將包含自動化測試的組建編號。 這個參數只能在 MTM 2012 底下使用。 如果有定義,就必須一併指定 BuildDefinition 參數。 如果未指定,顯示在測試回合詳細資料中的 [組建] 欄位將不會受到測試回合影響。

-SettingsName

可讓使用者指定要用於測試回合的設定。 如果未指定,則會使用預設測試設定。

-TestRunWaitDelay

可讓使用者指定每次呼叫測試控制器之間的延遲 (以秒為單位)。 若要讓測試回合在處理測試結果之前完成,這就是必要參數。 如果未指定,它將預設為 10 秒。

-InconclusiveFailsTests

N/A

設定這個旗標時,如果存在結果不明的測試,將會導致部署失敗。 根據預設,結果不明的測試不會導致部署失敗。

-RemoveIncludeParameter

N/A

設定這個旗標時,/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

要影響的區段名稱。 如果未指定,將會考量根區段 (在第一個區段前位於檔案開頭的所有機碼會被視為位於根區段)。

-NewSectionName

新的區段名稱。 如果未指定,將會考量根區段 (在第一個區段前位於檔案開頭的所有機碼會被視為位於根區段)。 這是 ModifySection 動作的必要參數。

-KeyName

要影響的機碼名稱。 這是 CreateKeyValue、ModifyKeyValue 和 RemoveKeyValue 的必要參數。

-KeyValue

要用於機碼的值。 使用 ModifyKeyValue 動作時,如果未指定此參數,而指定了 NewKeyName,系統將會使用實際值。 如果未指定此參數,而且未指定 NewKeyName,將會清空其值。

-NewKeyName

要提供給機碼的新名稱。 只能用於 ModifyKeyValue 動作。

-CreateFileIfNotExists

向工具指出,如果檔案不存在,就必須建立檔案。

Windows 處理序

這項工具可以終止 Windows 處理序。 這項工具的組態變數包括:

參數

變數

強制性

描述

-command

N/A

固定值 ./WindowsProcess.ps1。

-ProcessName

要終止的 Windows 處理序名稱。

-UserName

執行處理序的使用者帳戶。 如果未指定,就會終止所有使用者的處理序。

-IsKillProcessTree

指出是否必須終止處理序樹狀結構的旗標。允許的值如下:

  • 1:終止處理序樹狀結構

  • 0 或空白:不終止處理序樹狀結構