0

当我指定带有空格的路径时,我无法让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都没关系。

4

3 回答 3

1

删除规则开关上的尾部斜杠可修复此问题(即使在 FX Cop 10.0 中)

改变:

/r:"c:\Program Files\Microsoft FxCop 1.36\Rules\"

至:

/r:"c:\Program Files\Microsoft FxCop 1.36\Rules"
于 2012-11-30T18:18:17.197 回答
0

您是否尝试过通过旧的 8.3 文件名访问?

例如

"c:\Progra~1\Micros~1\FxCopCmd.exe" /c /f:".\MyLibr~1\bin\Release\" /r:"c:\Progra~1\Micros~1\Rules\"

不能保证它会按预期工作,但可能值得一试。:)

--edit-- 我知道它不需要使用 8.3 名称。它是一个最近的工具,因此应该能够获取长名称,但由于它会带来麻烦,这可能是一个起点,而不是一个完整的解决方案。--结束编辑--

于 2009-11-11T14:18:20.953 回答
0

从 msbuild 执行 FXCop 任务时我遇到了这个问题。它正在使用类似的模式创建命令行参数。

我通过删除一个标志摆脱了这个错误:/d:".\"

它看起来很像您的 /f:".\MyLibr~1\bin\Release\" 参数。也许 fxcop 对“.\”感到窒息,并认为之后的所有内容都不再被引用?尝试将其更改为 /f:"MyLibr~1\bin\Release\" 并查看是否可以修复它。

〜洛伦

于 2010-02-17T00:39:20.653 回答