我们希望在多个解决方案之间共享.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
答案 0 :(得分:11)
查看JetBrains中的相应问题&#39;跟踪器:RSRP-339002。
不要删除任何东西:ReSharper尝试从两个路径加载文件,所以你应该没问题。在过去的两年里,我一直在使用类似的设置(多个解决方案之间的共享和版本化DotSettings),没有任何问题。
您无法删除绝对路径:它被用作密钥。你仍然可以投票支持这个问题。我个人不喜欢在源控制文件中使用绝对路径,即使在这种情况下它没有任何损害。
关于额外的前导..\
,我观察到相同的行为。我不知道为什么;也许路径是相对于缓存文件夹而不是解决方案文件夹?无论如何,它绝对需要。
答案 1 :(得分:6)
R#保留绝对路径和相对路径,以适应使用注入文件层的所有方案。相对路径适用于源控件托管解决方案,注入的图层文件也签入到同一源控件。绝对路径适用于从外部资源注入文件,如机器上的全局路径,或源控制解决方案时的网络共享。
绝对路径目前是强制性的。主要是出于历史原因。这可能会改为&#34;需要一个&#34;。
相对路径是相对于它注入的主机层的磁盘文件。在您的情况下,它是.sln.DotSettings
文件。为什么,它应该是它的文件夹,但我在实现它时错过了.Parent
的东西!它在测试或测试计划期间没有浮出水面。就像,它适用于相对路径,没有人费心计算到目前为止的双倍数% - )