如何在ReSharper DotSettings图层中使用相对路径

kna*_*ten 8 resharper

我们希望.DotSettings在几种解决方案之间分享.我们的目标是有一个 CodeStyle.DotSettings,我们在我们所有的层参考X.sln.Dotsettings.但是,当我添加图层时,我看到了意外的行为.

我转到"管理选项",右键单击"解决方案X团队共享" - >"添加图层" - >"打开设置文件",选择CodeStyle.DotSettings并单击"打开".

然后我检查X.sln.DotSettings,看到两个引用,一个使用绝对路径,一个使用相对:

<s:String x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=3BE2D8150433584697322AAD3C173856/AbsolutePath/@EntryValue">C:\path\to\my\repo\CodeStyle.DotSettings</s:String> <s:String x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=3BE2D8150433584697322AAD3C173856/RelativePath/@EntryValue">..\CodeStyle.DotSettings</s:String>

检查我的本地存储库的绝对路径是没有意义的,所以我尝试删除该行X.DotSettings,但它不再显示在"设置图层"对话框中.它的相对路径看起来很可疑,因此我尝试从中移除..\它,但它仍然没有出现在"设置层"中.

我究竟做错了什么?

我们正在使用ReSharper 8.2.3

Jul*_*ain 11

请参阅JetBrains跟踪器中的相应问题:RSRP-339002.

不要删除任何东西:ReSharper尝试从两个路径加载文件,所以你应该没事.在过去的两年里,我一直在使用类似的设置(多个解决方案之间的共享和版本化DotSettings),没有任何问题.

您无法删除绝对路径:它用作密钥.你仍然可以投票支持这个问题.我个人不喜欢在源控制文件中有一个绝对路径,即使它在这种情况下没有坏处.

关于额外的领先..\,我观察到相同的行为.我不知道为什么; 也许路径是相对于缓存文件夹而不是解决方案文件夹?无论如何,它绝对需要.


hyp*_*rsw 6

R#保留绝对路径和相对路径,以适应使用注入文件层的所有方案.相对路径适用于源控件托管解决方案,注入的图层文件也签入到同一源控件.绝对路径适用于从外部资源注入文件,如机器上的全局路径,或源控制解决方案时的网络共享.

绝对路径目前是强制性的.主要是出于历史原因.这可能会改为"需要任何一个".

相对路径是相对于它注入的主机层的磁盘文件.在你的情况下,它是.sln.DotSettings文件.为什么,它应该是它的文件夹,但我.Parent实现它时错过了!它在测试或测试计划期间没有浮出水面.就像,它适用于相对路径,没有人费心去计算双点直到现在% - )