StyleCop字典相对路径

时间:2013-10-02 06:50:55

标签: stylecop

我遇到了StyleCop的问题,这很可能是一个愚蠢的小事,但我无法纠正它,这让我发疯,因为它让我松了这么多时间。我希望你能帮助我。

问题是以下问题:我正在与一些同事一起开展大型项目,因此代码由Subversion控制,并且它被安排在树状文件夹层次结构中。我们正在将StyleCop与此项目一起使用,我们希望将相同的设置和相同的字典应用于所有源代码文件。

为了做到这一点,我将设置文件放在根目录中,以便编译器在编译项目的任何源代码文件时可以访问它,因为它被指定为here

但我的麻烦是关于字典的。我希望将字典文件放在与设置文件相同的目录中,因此它也受版本控制。理论上,根据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>
...

1 个答案:

答案 0 :(得分:0)

以下对我有用:

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

提示:我得出了这个结论,因为当我向DictionaryFolders属性添加“..”时,我在类StyleCop.Utils.MakeAbsolutePath中得到一个NullReferenceException。因此,看起来StyleCop开发人员似乎没有以防御方式开发他们的MakeAbsolutePath方法,他们期望领先“\”。