如何在 ReSharper DotSettings 图层中使用相对路径
Posted
技术标签:
【中文标题】如何在 ReSharper DotSettings 图层中使用相对路径【英文标题】:How to use relative paths in ReSharper DotSettings layers 【发布时间】:2015-02-11 02:05:42 【问题描述】:我们希望在多个解决方案之间共享.DotSettings
。我们的目标是在我们的所有X.sln.Dotsettings
中拥有一个 CodeStyle.DotSettings
作为一个层。但是,当我添加图层时,我看到了意外的行为。
我进入“管理选项”,右击“Solution X team-shared”->“添加层”->“打开设置文件”,选择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
【问题讨论】:
希望这已经过时了。使用 R# 2018.3.1,仍然添加了绝对路径,但是从 .sln.DotSettings 文件中将其注释掉似乎不会阻止设置层对话框识别它。 【参考方案1】:在 JetBrains 的跟踪器中查看相应的问题:RSRP-339002。
不要删除任何内容:ReSharper 会尝试从两个路径加载文件,所以您应该没问题。在过去的两年里,我一直在使用类似的设置(多个解决方案之间共享和版本化的 DotSettings),没有出现任何问题。
您不能删除绝对路径:它被用作键。您仍然可以为该问题投票。我个人不喜欢在源代码控制的文件中使用绝对路径,即使在这种情况下它不会造成任何伤害。
关于额外的前导..\
,我观察到相同的行为。我不知道为什么;也许路径是相对于缓存文件夹而不是解决方案文件夹?无论如何,它肯定是需要的。
【讨论】:
同意,这令人困惑。我已经对这个问题发表了评论并投票了。【参考方案2】:R# 保留绝对路径和相对路径,以适应使用注入文件层的所有场景。相对路径适用于具有注入层文件的源代码管理托管解决方案,该文件也签入到相同的源代码管理中。绝对路径适用于从外部资源注入文件,例如机器上的全局路径,或在源代码控制解决方案的情况下的网络共享。
绝对路径目前是强制性的。主要是因为历史原因。这可能会更改为“需要任何一个”。
相对路径是相对于注入它的主机层的磁盘文件。在您的情况下,它是 .sln.DotSettings
文件。为什么,它应该是它的文件夹,但我在实现它时错过了.Parent
的东西!而且它在测试或测试程序期间没有浮出水面。就像,它适用于相对路径,直到现在没有人费心计算双点 %-)
【讨论】:
UPD abs 路径不再是强制性的,下一个版本 (wave02) 将支持 rel-path-only 注入层。以上是关于如何在 ReSharper DotSettings 图层中使用相对路径的主要内容,如果未能解决你的问题,请参考以下文章
在 InspectCode 中应用 Resharper 命名规则
如何在Visual Studio中禁用ReSharper并再次启用它?
你如何使用 Jasmine + Resharper 引用外部库