18

VS2008 项目中的子目录主要用于在磁盘上物理表示项目的命名空间结构。每个文件夹都有一个名为“命名空间提供程序”的布尔属性,当设置为 True 时,ReSharper 会验证给定类的物理位置是否对应于逻辑命名空间位置。

有时我不希望将文件夹用作命名空间提供程序,因此我将此属性设置为 False,并且 ReSharper 不会执行检查。

问题

此设置不会保存在项目文件中,因此在我下次打开解决方案时恢复为默认值 True。这没什么大不了的,但 ReSharper 确实会给您很多关于不正确命名空间的警告。

为什么不保存属性值?

版本...

带有 VS2008 SP1 的 ReSharper 4.0

4

3 回答 3

18

对我来说,此设置保存在 .csproj.resharper 文件中。我们遇到了问题,因为一些开发人员在这个文件上添加了一个忽略模式,并且没有签入。

于 2010-09-30T16:25:07.467 回答
12

@橄榄小时

这是保存在 ProjectName.csproj.DotSettings 文件中的项目级设置。考虑将所有项目级 .DotSettings 文件检查到源代码控制,以在您的团队中保留此设置。

于 2012-02-19T19:13:56.727 回答
3

快速回答: 在切换分支之前,关闭您正在切换的解决方案。这可以防止 VS 提示您“重新加载”解决方案,因为它已更改。Visual Studio 将在重新加载 .suo 文件时删除 ReSharper 的自定义设置。

长答案: 我发现要保持“命名空间提供程序”的 False 设置(True 设置始终保持,因为它是默认状态)是为了确保在我切换分支之前(通过 ToirtoiseSVN),我记得关闭 Visual Studio 或解决方案。

在 Visual Studio 提示您以下消息后,只要您选择“重新加载”Visual Studio 选项,该状态就会被清除:“项目 'project.name.here' 已在环境外修改。按重新加载以从磁盘。按忽略以忽略外部更改。”

我认为发生这种行为是因为 Visual Studio 在重新加载 .suo 文件时从 .suo 文件中删除了所有未知值。这是保留此 ReSharper 设置(命名空间提供程序)的地方。

于 2011-05-17T15:47:06.020 回答