添加命令行开关
适用范围:Visual Studio
Visual Studio for Mac
Visual 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。
检索命令行开关
加载包后,可以通过完成以下步骤来检索命令行开关。
在 VSPackage 的实现中 SetSite ,调用
QueryService
SVsAppCommandLine 以获取 IVsAppCommandLine 接口。调用 GetOption 以检索用户输入的命令行开关。
以下代码演示如何确定用户是否输入了 MySwitch 命令行开关:
IVsAppCommandLine cmdline = (IVsAppCommandLine)GetService(typeof(SVsAppCommandLine));
int isPresent = 0;
string optionValue = "";
cmdline.GetOption("MySwitch", out isPresent, out optionValue);
每次加载包时,你都有责任为命令行开关检查。