2

クイックプリアンブル

これをこの質問の複製としてマークする前に、私はこの解決策を試していますが、まだ問題があります。

質問

Beyond Compare v3.3 を使用して、ASP.Net Web サイトの 2 つのフォルダー間でファイルを比較しようとしています。1 つのフォルダーにはすべての .ascx.cs ファイルが定義されており、もう 1 つのフォルダーは dll からコード ビハインドを継承しています。

左側の .ascx ファイルには

<%@ Control Language="c#" Inherits="MyControl" CodeFile="MyControl.ascx.cs" %>

右側には、

<%@ Control Language="c#" Inherits="MyControl, MyAssembly" %>

それらがファイル内の唯一の違いである場合、重要でない違いを無視する機能を介してそれらが等しいと見なされるようにします。

Google で簡単に検索すると、この StackOverflow の質問このサポート ページが表示されますが、基本的に同じことを言っています。

彼らの指示に従いましたが、まだうまくいきません。

これが私がやったことです:

  1. 新しいフォルダー比較セッションを開始しました。
  2. .ascx ファイルを開きました。
  3. [ルール] ボタンをクリックして、[セッションの設定] ダイアログを開きます。
  4. [重要度] タブで、[文法の編集] ボタンをクリックします。
  5. 「新規...」ボタンをクリックしました。
  6. 「要素名」を「CodeFile」に、「テキストマッチング」を「

    (Inherits|CodeFile)\s*=\s*(["'])[^'"]+\2

    「正規表現」チェックボックスをオンにし、「この要素は大文字と小文字を区別します」チェックボックスをオフにして、[OK]ボタンをクリックしました。

    新しい文法項目ダイアログ

  7. [OK] ボタンをクリックしました。
  8. ([重要度] タブに戻ります) 新しく作成された [CodeFile] チェックボックスのチェックを外しました。
  9. ドロップダウンで [Update Session Defaults] を選択し、[OK] をクリックします。 セッション設定ダイアログ

正規表現が正しいことを再確認するために、正規表現を使用して 2 つの .ascx ファイルで ctrl+F を実行しました。3 つのインスタンスすべてが正しく検出されました (左側のファイルでは Inherits="... "、右側のファイルではInherits="..."CodeFile="..." )。

ファイル比較でも (フォルダー比較とは対照的に)、違いが重要でないとマークされていません。CodeFileこれらの特定の行には大文字と小文字の違いがあり、それらを重要でないと正しくマークしていますが、Inheritsまだ不平を言っています。

片方には 2 つの違いがあり、もう一方には 1 つの違いがあるためではないかと考えたので、1 つのファイルにコメントを追加しました。これは、私の理解では、新しいファイルとまったく同じタイプのルールを持っています。BC3 はコメントも正しく無視しました。

比較失敗

何か案は?

4

1 に答える 1

0

SQL ファイルの sp_updateextendedproperty または sp_addextendedproperty の行を無視する際に問題がありました。私が見つけた解決策は、正規表現が実際に行の一部だけでなく行全体と一致することを確認することでした。もともと私が使用していた: EXEC sp_(update|add)extendedproperty

一致の問題を解決するために、次のように変更しました: .*EXEC sp_(update|add)extendedproperty.*

これには、先​​頭または末尾に追加された文字が含まれます

于 2017-08-07T02:29:32.613 に答える