Относительный путь словаря StyleCop

У меня проблема со StyleCop, это, скорее всего, дурацкая мелочь, но я не могу ее исправить, и это сводит меня с ума, потому что из-за этого я теряю так много времени. Я надеюсь, что вы можете мне помочь.

Проблема заключается в следующем: я работаю над большим проектом вместе с некоторыми коллегами, поэтому код контролируется Subversion и организован в древовидную иерархию папок. Мы используем StyleCop с этим проектом и хотим применить одни и те же настройки и один и тот же словарь ко всем файлам исходного кода.

Для этого я поместил файл настроек в корневой каталог, чтобы компилятор мог получить к нему доступ при компиляции любого файла исходного кода проекта, как указано в здесь.

Но мои проблемы касаются словаря. Я хочу, чтобы файл словаря был помещен в тот же каталог, что и файлы настроек, поэтому он также контролируется версией. Дело в том, что теоретически, согласно this, я могу указать путь относительно местоположения файл настроек, и поиск по словарю будет там.

Итак, я просто хочу сказать StyleCop, что нужно искать словарь в той же папке, где находятся сами файлы настроек! Но я не могу написать относительный путь, который означает «текущая папка». Я действительно много чего перепробовал:., ".", $., $ (.), ./,. \,%.% ... В файлах настроек, которые на самом деле являются XML-файлом, это выглядит как это:

<StyleCopSettings Version="105">
  <GlobalSettings>
    <CollectionProperty Name="DictionaryFolders">
      <Value>%.%</Value> <!-- Relative paths here-->
      <Value>.</Value>
      <Value>./</Value>
      <Value>.\</Value>
      <!-- etc -->
    </CollectionProperty>
  </GlobalSettings>
...

Но ни один из этих синтаксисов не работает. Фактически, многие из них заставляют компилятор выдавать предупреждение о том, что он не может проанализировать файл настроек XML.

Что мне не хватает? Как выглядит правильный синтаксис? Или я еще что-то не так делаю?

Надеюсь, я ясно изложил свою точку зрения, и буду очень признателен за помощь.

С уважением, Алисия.

РЕДАКТИРОВАТЬ:

Мне наконец удалось решить эту проблему с другой точки зрения. Вместо использования словарей, размещенных в той же папке, что и файл настроек, я добавил нужные слова в сам файл настроек, например:

<StyleCopSettings Version="105">
  <GlobalSettings>
    <CollectionProperty Name="RecognizedWords">
      <Value>aa</Value>
      <Value>aspx</Value>
      <Value>clk</Value>
      <Value>dll</Value>
      <!-- etc -->
    </CollectionProperty>
  </GlobalSettings>
...

person Alicia    schedule 02.10.2013    source источник
comment
Возможно актуально: stackoverflow.com/ questions / 18917055 /   -  person zeel    schedule 02.10.2013


Ответы (1)


Для меня сработало следующее:

<GlobalSettings>
<CollectionProperty Name="DictionaryFolders">
  <Value><![CDATA[\]]></Value>
</CollectionProperty>
</GlobalSettings>

Подсказка: я пришел к такому выводу, потому что, когда я добавляю ".." к свойству DictionaryFolders, я получаю исключение NullReferenceException в классе StyleCop.Utils.MakeAbsolutePath. Таким образом, похоже, что разработчики StyleCop просто не разработали свой метод MakeAbsolutePath защитным способом и ожидают ведущего символа "\".

person msaladin    schedule 13.01.2014
comment
Я пробовал это, но у меня не получилось ... Я придерживаюсь своего решения. Тем не менее, спасибо. - person Alicia; 04.02.2014