FxCop命令行和带空格的路径

时间:2009-11-11 14:15:16

标签: .net fxcop

当我指定带有空格的路径时,我遇到了使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无关紧要。

3 个答案:

答案 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 \”,看看是否可以修复它。

〜洛伦