0

変更セットをマージするオプションがある VS 拡張機能を使用しています。この拡張機能は、競合が検出された場合に [競合の解決] ウィンドウを開き、[自動的にマージ] (無効)、[マージ ツールでマージ]、[ソースを取得]、[ターゲットを取得] などを選択できるようにします。

問題は、ウィンドウがモーダルであることです。したがって、デフォルトのマージ ツールでマージを表示したい場合は、[競合の解決] ウィンドウの背後にあるタブ付きウィンドウとして比較が開きます。

[競合の解決] ウィンドウを開くコードは次のとおりです。

try
{
    Assembly assres = Assembly.GetAssembly(typeof(ControlAddItemsExclude));
    var dlgResolveConflicts = assres.GetTypes().FirstOrDefault(x => x.Name == "DialogResolveConflicts");
    dlgResolveConflicts.InvokeMember("ResolveConflicts", BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Static, null, null, new object[] { wrkspc, null, true, null });
}
catch(Exception ex)
{
    Utilities.OutputCommandString(ex.ToString());
    MessageBox.Show(ex.ToString());
}

マージ比較ツールを操作できるように、「競合の解決」ウィンドウをモードレスで開くのを手伝ってくれませんか?

敬具、 アッサー・ファーレンホルツ

4

1 に答える 1

2

回避策を見つけました:

手動の競合が必要なモーダル ウィンドウが開いたら、別の VS2013 を開き、[保留中の変更] に移動し、[競合の解決] に移動し、比較ツールを使用してすべての手動マージを行います。それが完了したら、追加の VS2013 を閉じて元の VS2013 に戻り (モーダル ウィンドウがまだ開いている状態で)、[更新] を押してウィンドウを閉じ、続行します。

于 2015-10-28T01:22:48.557 に答える