快速序言
在您将其标记为此问题的副本之前,我正在尝试这个解决方案,但我仍然遇到问题。
问题
我正在尝试使用 Beyond Compare v3.3 比较 ASP.Net 网站的两个文件夹之间的文件。一个文件夹定义了所有 .ascx.cs 文件,另一个文件夹从 dll 继承代码。
所以在左边,.ascx 文件有
<%@ Control Language="c#" Inherits="MyControl" CodeFile="MyControl.ascx.cs" %>
在右边,他们有
<%@ Control Language="c#" Inherits="MyControl, MyAssembly" %>
如果这些是文件中唯一的差异,我希望通过忽略不重要的差异功能将它们视为相等。
一个快速的谷歌搜索出现了这个 StackOverflow 问题和这个支持页面,它们说的基本相同。
我已按照他们的指示进行操作,但仍然无法正常工作。
这是我所做的:
- 开始了一个新的文件夹比较会话。
- 打开一个 .ascx 文件。
- 单击“规则”按钮以打开“会话设置”对话框。
- 在重要性选项卡上,单击编辑语法按钮。
- 单击“新建...”按钮。
将“元素名称”设置为“代码文件”,将“文本匹配”设置为
(Inherits|CodeFile)\s*=\s*(["'])[^'"]+\2
选中“正则表达式”复选框,取消选中“此元素区分大小写”复选框,然后单击“确定”按钮。
- 单击确定按钮。
- (现在回到重要性选项卡上)取消选中新制作的“代码文件”复选框。
- 在下拉列表中,选择“更新会话默认值”,然后单击确定。
只是为了仔细检查我的正则表达式是否正确,我使用正则表达式对两个 .ascx 文件运行了 ctrl+F。它正确地找到了所有三个实例(左侧文件中的Inherits= " ..." 和右侧的Inherits="..."和CodeFile="...")。
即使在文件比较(与文件夹比较相反)上,也不会将差异标记为不重要。这些特定的行在大小写上有所不同,它正确地将那些标记为不重要,但CodeFile
它Inherits
仍然在抱怨。
我认为可能是因为一方有两个不同,而另一方有一个,所以我在一个文件上添加了注释,据我了解,该文件与我的新文件具有完全相同的规则类型。BC3 也正确地忽略了评论。
有任何想法吗?