用於部署應用程式的 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) 採用下列搜尋模式:
|
|
-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 |
動作 |
是 |
要執行的動作。 允許的值包括:
|
-OperatingSystemType |
否 |
指出機碼/值是在 32 位元或 64 位元登錄中存取。 如果未提供此參數,預設值就是 32 位元。 |
|
-RegistryKey |
RegistryKey |
是 |
登錄機碼的路徑和名稱 (例如 HKLM\Software\MyKey)。 |
-RegistryValue |
否* |
將要套用變更的登錄值 (例如 MyValue)。 這是 CreateValue、ModifyValue 和 DeleteValue 的必要參數。 |
|
-ValueType |
否 |
受影響之值的類型。 接受的值包括:
|
|
-RegistryData |
否 |
要套用至值的資料 (如果使用 CreateValue 或 ModifyValue),或是要套用至機碼之預設值的資料 (如果使用 CreateKey 或 ModifyKey)。 |
|
-RegistryKeyDestination |
否* |
要在使用 ModifyKey 動作來重新命名登錄機碼時使用的登錄機碼名稱。 例如:
|
Windows 通用 IO
這項工具會在 Windows 底下執行通用 IO 工作。 它是以自訂發行管理 PowerShell 指令碼為基礎。 這項工具的組態變數包括:
參數 |
變數 |
強制性 |
描述 |
---|---|---|---|
-command |
N/A |
是 |
固定值 ./ManageWindowsIO.ps1。 |
-Action |
動作 |
是 |
表示要執行的動作:
|
-FileFolderName |
FileFolderName |
是 |
檔案或資料夾路徑和名稱。 |
-DestinationName |
否* |
目的地名稱 (針對 Rename 動作) 或資料夾路徑和名稱 (針對 Move 動作)。這是 Rename 和 Move 動作的必要參數。 |
|
-ReadOnly |
否 |
可讓使用者設定或重設檔案或資料夾的唯讀屬性。
|
|
-Archive |
否 |
可讓使用者設定或重設檔案或資料夾的封存屬性。
|
|
-System |
否 |
可讓使用者設定或重設檔案或資料夾的系統屬性。
|
|
-Hidden |
否 |
可讓使用者設定或重設檔案或資料夾的隱藏屬性。
|
|
-OwnerDomain |
否 |
代表檔案或資料夾之新擁有者的網域。 |
|
-OwnerName |
否 |
代表檔案或資料夾之新擁有者的名稱。 |
Windows 服務管理員
這項工具會管理 Windows 服務。 它是以自訂發行管理 PowerShell 指令碼為基礎。 這項工具的組態變數包括:
參數 |
變數 |
強制性 |
描述 |
---|---|---|---|
-command |
N/A |
是 |
固定值 ./ManageWindowsServices.ps1。 |
-Action |
動作 |
是 |
表示要執行的動作:
|
-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 模式來建立服務。 選項有:
這是 Create 和 Config 動作的選擇性參數,而所有其他動作則會忽略此參數。 |
DACPAC 資料庫部署代理程式
這項工具會部署 DACPAC 封裝。 它是以 SQL Server 命令列公用程式為基礎。 這個可執行檔有許多可用的參數,但是下列清單僅列出這項工具所使用的參數。 如需詳細資訊,請參閱 SQL 封裝命令列公用程式。 這項工具的組態變數包括:
參數 |
變數 |
強制性 |
描述 |
---|---|---|---|
/Action: |
是 |
固定值:Publish - 指定將要發行的封裝。 |
|
/SourceFile: |
FileName |
是 |
DACPAC 的完整路徑 (如有必要) 和檔案名稱。 |
/TargetServerName: |
ServerName |
是 |
要發行封裝之目標 SQL Server 的名稱。 |
/TargetDatabaseName: |
DatabaseName |
是 |
要發行封裝之目標 SQL Server 資料庫的名稱。 |
IIS 部署代理程式
這項工具會管理 IIS 物件和設定。 它是以自訂發行管理可執行檔為基礎。 這項工具的組態變數會因要執行的動作類型而異。
若為應用程式集區動作:
參數 |
變數 |
強制性 |
描述 |
---|---|---|---|
-Action |
是 |
表示要執行的動作:
|
|
-ap |
是 |
應用程式集區名稱。 |
|
-apAllow32Bit |
否 |
指出應用程式集區是否必須允許 32 位元應用程式的旗標。 此參數僅適用於 IIS 7.0、7.5、8.0 和 8.5。 允許的值包括:
|
|
-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。 允許的值包括:
|
|
-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。 允許的值包括:
|
|
-AutoStart |
否 |
指出應用程式集區是否必須自動啟動的旗標。 此參數僅適用於 IIS 7.0、7.5、8.0 和 8.5。 允許的值包括:
|
|
-log |
否 |
若為網站動作:
參數 |
變數 |
強制性 |
描述 |
---|---|---|---|
-Action |
是 |
表示要執行的動作:
|
|
-sn |
是 |
網站名稱。 |
|
-port |
否* |
網站的通訊埠編號。 這是 Create 動作的強制參數,Configure 動作的選擇性參數。 |
|
-pd |
否* |
已發行應用程式之目標位置的完整路徑路由。 這是 Create 動作的強制參數,Configure 動作的選擇性參數。
注意事項
確定該路徑中沒有任何結尾斜線。
|
|
-ap |
否 |
應用程式集區的名稱。 如果沒有在建立應用程式集區時定義,則會使用預設應用程式集區。 這是 Create 和 Configure 動作的選擇性參數。 |
|
-EnablePreload |
否 |
允許針對 IIS 7.0、7.5、8.0 和 8.5 使用。 指出是否必須預先載入網站的旗標。 這是 Create 和 Configure 動作的選擇性參數。 允許的值如下:
|
|
-AutoStart |
否 |
允許針對 IIS 7.0、7.5、8.0 和 8.5 使用。 指出是否必須自動啟動網站的旗標。 這是 Create 和 Configure 動作的選擇性參數。 允許的值如下:
|
|
-log |
否 |
系統將在實體目錄中產生具有這個指定名稱的記錄檔。 |
若為 Web 應用程式動作:
參數 |
變數 |
強制性 |
描述 |
---|---|---|---|
-Action |
是 |
表示要執行的動作:
|
|
-ws |
是 |
要建立的應用程式名稱。 |
|
-pd |
否* |
已發行應用程式之目標位置的完整路徑路由。 這是 Create 動作的強制參數,Configure 動作的選擇性參數。 |
|
-sn |
否 |
網站名稱。 如果未指定,系統將在建立新的應用程式時使用預設網站。 這是 Create 和 Configure 動作的選擇性參數。 |
|
-ap |
否 |
應用程式集區的名稱。 如果沒有在建立應用程式集區時定義,則會使用預設應用程式集區。 這是 Create 和 Configure 動作的選擇性參數。 |
|
-EnablePreload |
否 |
允許針對 IIS 7.0、7.5、8.0 和 8.5 使用。 指出是否必須預先載入網站的旗標。 這是 Create 和 Configure 動作的選擇性參數。 允許的值如下:
|
|
-log |
否 |
系統將在實體目錄中產生具有這個名稱的記錄檔。 |
若為虛擬目錄動作:
參數 |
變數 |
強制性 |
描述 |
---|---|---|---|
-Action |
是 |
表示要執行的動作:
|
|
-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 |
是 |
表示要執行的動作:
|
|
-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 |
是 |
表示要執行的動作:
|
|
-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 |
否 |
指出是否必須終止處理序樹狀結構的旗標。允許的值如下:
|