我正在使用McMaster.Extensions.CommandLineUtils。
我有一个小型控制台应用程序(实际上是一个端到端测试),可以在本地计算机上安装服务。在Windows上,调用方提供CAB文件的路径。在Linux上,调用方提供APT软件包的名称。这两个都可以通过单个命令行选项来表示,例如--package <value>
。但是在Windows上,我 也有一个PowerShell脚本来包装CAB文件的安装,因此我想在Windows上有某种--installer <script-path>
选项,但是在Linux上没有这样的选项
Windows:
PS> dotnet run -p mytest -- --help
Usage: mytest [options]
Options:
-?|-h|--help Show help information
--package Path to installation package
--installer Path to the installer script
Linux:
$ dotnet run -p mytest -- --help
Usage: mytest [options]
Options:
-?|-h|--help Show help information
--package Path to installation package
我知道我可以简单地添加--installer
选项和(1)仅在Windows上有效的文档,和/或(2)添加代码以验证该选项未在Linux系统上使用(失败如果是)。但是我想知道是否有一种简便的方法来编写我的代码,使得--installer
在Windows上是一个选项,而在Linux上不是一个选项(在帮助中未显示,与调用方指定时一样--blah
或我的程序无法预期的其他随机选项。
CommandLineUtils是否提供属性(或属性上的限定符)来执行此操作?还是有其他方法?