387

Beyond Compare をデフォルトで差分ツールとして開くように Visual Studio を構成したいと考えています。これどうやってするの?

4

10 に答える 10

585

Visual Studioで、[ツール]メニューに移動し、[オプション]を選択し、[ソース管理]を展開して(TFS環境では、[Visual Studio Team Foundation Server]をクリックします)、[ユーザーツールの構成]ボタンをクリックします。

[ユーザーツールの構成]ボタンの場所を示す画像

[追加]ボタンをクリックします。

比較する次のオプションを入力/選択します。

  • 拡張子.*
  • 操作Compare
  • コマンド:(C:\Program Files\Beyond Compare 3\BComp.exeバージョン番号を含む、マシンの適切なパスに置き換えます)
  • 引数%1 %2 /title1=%6 /title2=%7

Beyond Compare Professional(3ウェイマージ)を使用している場合:

  • 拡張子.*
  • 操作Merge
  • コマンド:(C:\Program Files\Beyond Compare 3\BComp.exeバージョン番号を含む、マシンの適切なパスに置き換えます)
  • 引数%1 %2 %3 %4 /title1=%6 /title2=%7 /title3=%8 /title4=%9

Beyond Compare v3 /v4StandardまたはBeyondComparev2(2-way Merge)を使用している場合:

  • 拡張子.*
  • 操作Merge
  • コマンド:(C:\Program Files\Beyond Compare 3\BComp.exeバージョン番号を含む、マシンの適切なパスに置き換えます)
  • 引数%1 %2 /savetarget=%4 /title1=%6 /title2=%7

BeyondCompareでタブを使用する場合

Beyond Compareをタブ付きモードで実行すると、Visual Studioから一度に複数のファイルのセットを差分またはマージすると、混乱する可能性があります。これを修正するには、引数/soloの最後に引数を追加します。これにより、各比較が新しいウィンドウで開き、タブの問題を回避できます。

于 2010-12-16T23:29:31.833 に答える
14

Visual Studio の新しいバージョンがリリースされたり、PC を移動したり、新しいメンバーがチームに参加したりすると、6 か月ごとにこれを行うことに飽き飽きしました。したがって、PowerShell:

# .Synopsys
# Sets up Beyond Compare professional as Diff tool for all instances of Visual Studio on this PC
# If you don't use TFS, change the sccProvider as appropriate
[CmdLetBinding()]
param(
    $bcPath = 'C:\Program Files (x86)\Beyond Compare 3\BComp.exe',
    $sccProvider = 'TeamFoundation'
)

$ErrorActionPreference = 'stop';
$baseKey = 'REGISTRY::\HKCU\Software\Microsoft\VisualStudio\*'

function SetRegKeyProperties($keyPath, [hashtable]$keyProps){
    if(!(Test-Path $keyPath)){
        Write-Verbose "Creating $keyPath"
        # Force required here to recursively create registry path
        [void] (new-item $keyPath -Type:Directory -Force);
    }
    foreach($prop in $keyProps.GetEnumerator()){
        Set-ItemProperty -Path:$keyPath -Name:$prop.Key -Value:$prop.Value;
    }
}

$configBases = dir $baseKey | ? { $_.PSChildName -match '^\d+\.\d$' }
foreach($item in $configBases){
    Write-Host "Configuring $item"

    $diffToolsKey = Join-Path $item.PSPath "$sccProvider\SourceControl\DiffTools"
    SetRegKeyProperties (Join-path $diffToolsKey '.*\Compare') @{Command=$bcPath;Arguments='%1 %2 /title1=%6 /title2=%7'}
    SetRegKeyProperties (Join-path $diffToolsKey '.*\Merge') @{Command=$bcPath;Arguments='%1 %2 %3 %4 /title1=%6 /title2=%7 /title3=%8 /title4=%9'}
}

私のマシンで動作します。YMMV。保証なし、返金なし。VS はキーをキャッシュしていないように見えるため、すぐに有効になります。

于 2014-07-03T04:23:37.960 に答える
2

BComp.exe は複数タブのシナリオでも機能するため、ファイル比較ごとに個別のウィンドウが本当に必要でない限り、/solo を追加する必要はありません。Beyond Compare 3 および 4 でテスト/検証済み。モラル: VS 外部比較ツールの構成には、BCompare.exe ではなく BComp.exe を使用してください。

于 2016-08-18T21:09:12.810 に答える
2

64 ビット Windows 7 上の VS2013 には、次の設定が必要です。オプション | ソース管理 | Jazz ソース管理

チェックボックスをチェックする 外部比較ツールを使用する ... (見落としがちです)

実行可能ファイルの 2 方向比較の場所: C:\Program Files (x86)\Beyond Compare 3\BCompare.exe

実行可能ファイルの 3 方向競合比較の場所: C:\Program Files (x86)\Beyond Compare 3\BCompare.exe

于 2015-03-18T22:07:08.183 に答える