如何将包含逗号的多值参数传递给 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*
我想要 运行 包含以下内容的命令:
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*