添加命令行开关

适用范围:yesVisual Studio noVisual Studio for Mac noVisual Studio Code

执行 devenv.exe 时,可以添加应用于 VSPackage 的命令行开关。 使用 ProvideAppCommandLineAttribute 声明开关的名称及其属性。 在此示例中,为名为 AddCommandSwitchPackage 的 VSPackage 子类添加了 MySwitch 开关,该子类没有参数,并且会自动加载 VSPackage。

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

命名参数如以下说明所示。

名称 说明
参数 开关的参数数。 可以是“*”,也可以是参数列表。
DemandLoad 如果此值设置为 1,则自动加载 VSPackage,否则设置为 0。
HelpString 要与 devenv /?一起显示的字符串的帮助字符串或资源 ID。
名称 开关。
PackageGuid 包的 GUID。

Arguments 的第一个值通常为 0 或 1。 可以使用特殊值“*”来指示命令行的整个剩余部分是 参数。 这对于用户必须传入调试器命令字符串的调试方案非常有用。

DemandLoad 值为 true (1) 或 false (0) 指示应自动加载 VSPackage。

HelpString 值是 出现在 devenv /? 中的字符串的资源 ID帮助显示。 此值应采用“#nnn”格式,其中 nnn 是整数。 资源文件中的字符串值应以新行字符结尾。

Name 值是开关的名称。

PackageGuid 值是实现此开关的包的 GUID。 IDE 使用此 GUID 在应用命令行开关的注册表中查找 VSPackage。

检索命令行开关

加载包后,可以通过完成以下步骤来检索命令行开关。

  1. 在 VSPackage 的实现中 SetSite ,调用 QueryServiceSVsAppCommandLine 以获取 IVsAppCommandLine 接口。

  2. 调用 GetOption 以检索用户输入的命令行开关。

    以下代码演示如何确定用户是否输入了 MySwitch 命令行开关:

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

int isPresent = 0;
string optionValue = "";

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

每次加载包时,你都有责任为命令行开关检查。

另请参阅