VS2008项目中的子目录主要用于在磁盘上物理表示项目的命名空间结构。每个文件夹都有一个名为“Namespace Provider”的布尔属性,当设置为True时,ReSharper会验证给定类的物理位置是否与逻辑命名空间位置相对应。
有时我不希望将文件夹用作命名空间提供程序,因此我将此属性设置为False,而ReSharper不执行检查。
此设置不会保存在项目文件中,因此下次打开解决方案时会恢复为默认值True。这不是什么大不了的事,但ReSharper确实会给你很多关于不正确名称空间的警告。
为什么不保存属性值?
使用VS2008 SP1的ReSharper 4.0
答案 0 :(得分:17)
对我来说,此设置保存在.csproj.resharper文件中。我们遇到了问题,因为有些开发人员在这个文件上添加了一个忽略模式,而不是检查它。
答案 1 :(得分:12)
@olivehour
这是一个项目级设置,保存在ProjectName.csproj.DotSettings文件中。考虑将所有项目级.DotSettings文件检查为源代码控制,以在您的团队中保留此设置。
答案 2 :(得分:3)
快速回答: 在切换分支之前,请关闭要切换的解决方案。这可以防止VS提示您“重新加载”解决方案,因为它已更改。 Visual Studio将在重新加载时删除.suo文件中的ReSharper自定义设置。
答案很长: 我发现坚持“命名空间提供程序”错误设置(True设置始终保持,因为它是默认状态)是为了确保在切换分支之前(通过ToirtoiseSVN),我记得关闭Visual Studio或解决方案。
在Visual Studio提示您显示消息后,在您选择“重新加载”Visual Studio时,状态将被清除:“项目'project.name.here'已在环境外修改。按重新加载加载从磁盘更新项目。按忽略忽略外部更改。“
我认为出现这种情况是因为Visual Studio在重新加载时会从.suo文件中删除所有未知值。这是ReSharper设置(命名空间提供程序)持久化的地方。