共用方式為


新增命令列參數

您可以在執行 devenv.exe 時,新增套用至 VSPackage 的命令列參數。 使用 ProvideAppCommandLineAttribute 來宣告參數的名稱及其屬性。 在此範例中,會為名為 AddCommandSwitchPackage 的 VSPackage 子類別新增 MySwitch 參數,不含引數且會自動載入 VSPackage。

[ProvideAppCommandLine("MySwitch", typeof(AddCommandSwitchPackage), Arguments = "0", DemandLoad = 1)]

具名參數顯示在下列描述中。

名稱 描述
引數 參數的引數數目。 可以是 "*" 或引數清單。
DemandLoad 如果此設定為 1,則會自動載入 VSPackage,否則會設定為 0。
HelpString 要以 devenv /? 顯示之字串的說明字串或資源識別碼。
名稱 參數。
PackageGuid 套件的 GUID。

引數的第一個值通常是 0 或 1。 特殊值 '*' 可用來指明命令列的其餘部分是引數。 這對於使用者必須傳入偵錯工具命令字串的偵錯案例很有用。

DemandLoad 值為 true (1) 或 false (0) 表示應該自動載入 VSPackage。

HelpString 值是出現在 devenv /? 說明顯示中的字串資源識別碼。 此值的格式應該是 "#nnn",其中 nnn 是整數。 資源檔中的字串值應該以新行字元結尾。

Name 值是參數的名稱。

PackageGuid 值是實作此參數之套件的 GUID。 IDE 會使用此 GUID 在登錄中尋找套用該命令列參數的 VSPackage。

擷取命令列參數

載入套件時,您可以完成下列步驟來擷取命令列參數。

  1. 在 VSPackage 的 SetSite 實作中,呼叫 SVsAppCommandLine 上的 QueryService 以取得 IVsAppCommandLine 介面。

  2. 呼叫 GetOption 以擷取使用者輸入的命令列參數。

    下列程式碼說明如何確定使用者是否輸入 MySwitch 命令列參數:

IVsAppCommandLine cmdline = (IVsAppCommandLine)GetService(typeof(SVsAppCommandLine));

int isPresent = 0;
string optionValue = "";

cmdline.GetOption("MySwitch", out isPresent, out optionValue);

您必須負責在每次載入套件時檢查命令列參數。