如何将包含逗号的多值参数传递给 dotnet 命令行工具中的 属性?

How to pass multi-valued arguments containing commas to a property in dotnet command line tool?

我想要 运行 包含以下内容的命令:

dotnet test /p:Exclude=\"*Test*,*Requirement*\"

以上不是完整的命令,但足以引发解析错误。我在我的 C# 项目中使用 Coverlet NuGet 包,我想排除所有与这些名称匹配的项目。

我读过两个 here and here 都认为将参数包含在 \"escaped quotes\" 中应该可以做到,但它不起作用。我得到:

MSBUILD : error MSB1006: Property is not valid.
Switch: *Requirement*\

使用常规的未转义引号给出相同的错误消息:

dotnet test /p:Exclude="*Test*,*Requirement*"

转义逗号会给出相同的错误消息:

dotnet test /p:Exclude=*Test*\,*Requirement*

注意:以上示例可能不是正确的 Coverlet 语法。这暂时无关紧要。我只想能够将逗号分隔的值列表传递给一个参数。就目前而言,dotnet 在到达 Coverlet 之前很久就拒绝了我的语法。

我正在运行从 PowerShell 中执行命令。

事实证明,在 PowerShell 中,%2c 被解释为逗号。所以我可以输入:

dotnet test /p:Exclude=*Test*%2c*Requirement*