我们希望在几个解决方案之间共享.DotSettings
。目标是拥有一个我们引用为我们所有X.sln.Dotsettings
中的图层的CodeStyle.DotSettings
。但是,当我添加图层时,我看到了意外的行为。
我转到"管理选项",右键单击"解决方案X团队共享"->"添加图层"->"打开设置文件",选择CodeStyle.DotSettings
然后单击"打开"。
然后我检查X.sln.DotSettings
,并看到两个引用,一个使用绝对路径,另一个使用相对路径:
<s:String x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=3BE2D8150433584697322AAD3C173856/AbsolutePath/@EntryValue">C:pathtomyrepoCodeStyle.DotSettings</s:String>
<s:String x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=3BE2D8150433584697322AAD3C173856/RelativePath/@EntryValue">..CodeStyle.DotSettings</s:String>
签入本地存储库的绝对路径是没有意义的,所以我尝试从X.DotSettings
中删除该行,但它不再显示在"设置层"对话框中。相对路径的前导点似乎可疑,所以我尝试从中删除..
,但它仍然没有显示在"设置层"中。
我做错了什么?
我们正在使用 ReSharper 8.2.3
请参阅 JetBrains 跟踪器中的相应问题:RSRP-339002。
不要删除任何内容:ReSharper 尝试从两个路径加载文件,所以你应该没问题。在过去的两年里,我一直在使用类似的设置(多个解决方案之间的共享和版本化的 DotSettings),没有问题。
您无法删除绝对路径:它用作键。您仍然可以为该问题投票。我个人不喜欢在源代码管理文件中拥有绝对路径,即使在这种情况下它没有害处。
关于额外的前导..
,我观察到相同的行为。我不知道为什么;也许路径相对于缓存文件夹而不是解决方案文件夹?无论如何,它绝对是需要的。
R# 保留绝对路径和相对路径,以适应使用注入的文件层的所有方案。相对路径适用于源代码管理托管的解决方案,其中注入的层文件也签入到同一源代码管理中。绝对路径用于从外部资源注入文件,例如计算机上的全局路径,或者在受源代码管理的解决方案的情况下注入网络共享。
绝对路径目前是必需的。主要是出于历史原因。这可能可以更改为"需要其中任何一个"。
相对路径相对于注入它的主机层的磁盘文件。在您的情况下,它是.sln.DotSettings
文件。为什么,它应该是它的文件夹,但我在实现它时错过了.Parent
的事情!而且它在测试或测试程序中没有浮出水面。就像,它适用于相对路径,直到现在还没有人费心计算双点 %-)