当我指定带有空格的路径时,我遇到了使FxCop命令行生效的问题。是的,我正确使用了引号。
M:\build\IOService\src>"c:\Program Files\Microsoft FxCop 1.36\FxCopCmd.exe" /c /f:".\My Library\bin\Release\" /r:"c:\Program Files\Microsoft FxCop 1.36\Rules\"
Microsoft (R) FxCop Command-Line Tool, Version 1.36 (9.0.30729.1)
Copyright (C) 2007 Microsoft Corporation. All rights reserved.
Argument specified without a corresponding switch : 'Files\Microsoft'.
Argument specified without a corresponding switch : 'FxCop'.
Argument specified without a corresponding switch : '1.36\Rules"'.
Type FxCopCmd.exe /? for help on command-line arguments.
FxCop抱怨传递给/ r开关的路径。我引用了FxCop指南的路径。当我通过/ d开关传递路径时也会发生这种情况。还有其他人有类似的问题吗?如果我使用cmd或PowerShell无关紧要。
答案 0 :(得分:1)
删除规则开关上的尾部斜杠可修复此问题(即使在FX Cop 10.0中)
变化:
/r:"c:\Program Files\Microsoft FxCop 1.36\Rules\"
要:
/r:"c:\Program Files\Microsoft FxCop 1.36\Rules"
答案 1 :(得分:0)
您是否尝试通过旧的8.3文件名进行访问?
例如
"c:\Progra~1\Micros~1\FxCopCmd.exe" /c /f:".\MyLibr~1\bin\Release\" /r:"c:\Progra~1\Micros~1\Rules\"
不保证它会按预期工作,但可能值得一试。 :)
- 编辑 - 我知道它不应该使用8.3名称。它是一个最近的工具,因此应该能够取长名称,但由于它给它带来麻烦,这可能是一个起点,而不是一个完整的解决方案。 - 编辑 -
答案 2 :(得分:0)
从msbuild执行FXCop任务时出现此问题。它使用类似的模式创建命令行参数。
我通过删除标志来消除此错误:/ d:“。\”
看起来很像你的/ f:“。\ MyLibr~1 \ bin \ Release \”参数。也许fxcop对“。”扼杀并认为之后的所有内容都不再引用了?尝试将其更改为/ f:“MyLibr~1 \ bin \ Release \”,看看是否可以修复它。
〜洛伦