2009-11-11 3 views
0

У меня возникают проблемы с работой командной строки 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.

ответ

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. Это недавний инструмент, поэтому он должен быть более чем способным брать длинные имена, но поскольку он создает проблемы, это может быть отправной точкой, а не полным решением. --end edit--

+0

хорошо , я мог бы сделать это в командной строке, но я пытаюсь заставить интеграцию визуальной студии работать, и я передаю вещи как/d: $ (SolutionDir), который расширяется до цитируемого пути с длинными именами. – rev

+0

А, справедливо. :) – ZombieSheep

0

У меня была эта проблема при выполнении задач FXCop из msbuild. Он создавал аргументы командной строки с аналогичным шаблоном.

Я избавилась от этой ошибки, удалив флаг:/д: "\"

Это выглядит подозрительно, как ваш/ф: аргумент "\ MyLibr ~ 1 \ Bin \ Release \.". Возможно, fxcop задыхается от ". \" И думает, что все после того, как больше не цитируется? Попробуйте изменить это на/f: «MyLibr ~ 1 \ bin \ Release \» и посмотрите, исправляет ли он это.

~ Loren

1

Удалить косую черту на верховенстве коммутатора устраняет эту проблему (даже в FX Cop 10,0)

Изменение:

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

To:

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

Я уже не в состоянии попробовать это решение ... может ли кто-нибудь еще подтвердить? – rev

Смежные вопросы