Это не имеет никакого отношения к filter
является зарезервированным словом в PowerShell. Проблема в том, как PowerShell передает параметры собственному приложению. Ваша командная строка будет передана как:
OpenCover.Console.exe -output:Coverage.xml -register:user "-filter:"+[*]* -[*]*.Test*"" -target:nunit-console.exe "-targetargs:"Test.dll /config:Release /noshadow /nologo /labels""
Некоторых дополнительные кавычки, добавленных PowerShell, причина того, что неправильная командная строка будет передана в родное приложение.
Первая вещь, которую вы можете попробовать, чтобы изменить командную строку следующее:
OpenCover.Console.exe -output:Coverage.xml -register:user "-filter:+[*]* -[*]*.Test*" -target:nunit-console.exe "-targetargs:Test.dll /config:Release /noshadow /nologo /labels"
В этом случае никаких дополнительных цитат не будет добавлен PowerShell, и возможно, что OpenCover.Console.exe
может распознать вашу команду.
Если это не помогает, чем вы могли бы использовать Start-Process
командлет, он никогда не добавляйте никаких дополнительных qoutes:
Start-Process OpenCover.Console.exe '-output:Coverage.xml -register:user -filter:"+[*]* -[*]*.Test*" -target:nunit-console.exe -targetargs:"Test.dll /config:Release /noshadow /nologo /labels"' -NoNewWindow -Wait
Привет Крис, я не могу использовать 'Verbatim' как я на PowerShell 2.0 – MaYaN
Ах, это позор. – Chris