如何在多个解决方案之间共享相同的Resharper设置,且无需手动干预?

85
我们的项目是按照主解决方案(包含所有项目)和多个小解决方案(包含相关项目组)进行组织的。
我想在每个解决方案中共享相同的Resharper设置,确保开发人员不需要导入Resharper配置文件或手动执行任何操作。我们使用的版本是最新的之一,即7.0.1。在TFS中检查的DotSettings文件在单个解决方案中运行良好,但为20-30个解决方案复制相同的文件是不可取的。
有没有办法在整个团队中与每个项目/解决方案共享相同的配置,而无需开发人员明确配置这一点?理想情况下,应该可以更改每个解决方案的.DotSettings文件路径,以便当单个.DotSettings文件被编辑时,它自动影响团队中的每个解决方案。
更新:
我已经搜索了一些关于此事的资料,并尝试了两种不同的方法,但没有一种方法能够100%地工作:
  • Hardlinks使用mklink工具在本地可以完美运行,但TFS不支持它们。
  • 普通的快捷方式也是一个合理的解决方案,但Resharper无法读取它们。

我已经没有其他选择了。

更新 2:

Daniel Hilgarth提出的解决方案非常完美,但仅在更新了Resharper之后才有效。7.1版本修复了导致.DOTSettings文件自动在每台机器上被检出和编辑的错误。我已经在更新软件之前和之后进行了测试,现在它能够按照我的期望工作。

关于该错误的更多信息可以在此处找到:

http://youtrack.jetbrains.com/issue/RSRP-288235


你使用的是哪个版本的ReSharper? - Daniel Hilgarth
我正在使用工具的7.0.1版本。将更新问题以反映这一点。 - julealgon
版本10仍然没有为此提供任何具体的解决方案。例如,我希望将其作为完全独立的层来实现。 - MarioDS
3个回答

84

Resharper支持选项分层。

您可以像这样使用它:

  1. 有一个包含所有设置的DotSettings文件。
  2. 对于每个解决方案,请执行以下步骤:
    1. ReSharper->管理选项
    2. 右键单击“解决方案'Your Solution' team-shared”
    3. 选择添加层->打开设置文件
    4. 选择中央DotSettings文件

这将为每个解决方案创建一个DotSettings文件。 您需要将这些文件与中央DotSettings文件一起检入TFS。
重要提示:解决方案的DotSettings文件只包含到中央文件的链接,不复制设置。


1
它可以工作,但“解决方案'Your Solution'个人”设置会覆盖团队共享层。因此,我不得不为个人设置重复2-4步骤。现在我正在考虑是否需要将我的sln.DotSettings.user文件添加到源代码控制中,或者在本地开发环境配置例程中添加一步。 - Sasha
1
@alexander:确实,这是一个真正的问题,JetBrains正在努力解决它:http://youtrack.jetbrains.com/issue/RSRP-333945 - Daniel Hilgarth
关于语句“解决方案的DotSettings文件仅包含到中央文件的链接”...这是真的吗?我按照上面的步骤操作,但最终得到了两个DotSettings文件(中央和解决方案),里面都填充了设置。这可能没问题...我只是想确保我做对了。 - Jason Capriotti
1
我删除了解决方案设置和与中央设置的链接,然后再次尝试。它按预期工作。我可能已经有一个包含所有设置的解决方案设置文件。 - Jason Capriotti

23
这个问题很久了,但如果有人仍在寻找分享团队设置的方法:
所有R#的设置可以导出并打包为NuGet包,并作为常规ReSharper扩展进行分发。
这给你带来了灵活性:你可以为不同的团队共享不同的设置,ReSharper会负责检测新版本并通知开发人员。基本上就是使用NuGet时所能获得的所有好处。

1
确实非常好。我曾考虑过创建我们自己的内部NuGet包来做这种事情,但我想手动完成它(在解决方案级别上安装它作为普通的NuGet包,然后编辑引用的相对路径以使ReSharper使用它)。我不知道ReSharper自己的扩展也使用NuGet。非常非常有用。 - julealgon

3

在 Resharper 2015 中

前往 Resharper -> 选项 -> 管理(图片1) -> 选项 -> 导入和导出(图片2) -> 从文件中导入....

enter image description here

enter image description here

如果您想为您的团队导入它,可以前往解决方案设置,然后在 选项 中,不要选择 导入和导出 ,而是选择 复制设置到 -> team-shared

enter image description here

希望这能为您节省一些时间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接