有没有办法为我的控制台应用程序指定平台特定的选项?

时间:2019-05-14 00:13:42

标签: c# .net-core commandlineutils

我正在使用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是否提供属性(或属性上的限定符)来执行此操作?还是有其他方法?

0 个答案:

没有答案