26

再構築する前にVisualStudioプロンプトを表示する方法、または「ビルド」ではなく「再構築」を押さないようにする他の方法はありますか?

プロジェクトを右クリックして、「ビルド」をクリックするつもりだったときに誤って「再構築」を選択すると、数え切れないほどの時間を無駄にしました。

これは、ネイティブC++ソリューション用です。

4

4 に答える 4

41

Visual Studio 2010では、メニューをカスタマイズできます。プロジェクトのコンテキストメニューから「再構築」項目を削除できます。または、「再構築」コマンドを「構築」コマンドから移動して、誤って間違ったアイテムをヒットする可能性を低くすることもできます。

VS 2010から、

  • ツールメニューを選択します
  • [カスタマイズ...]を選択します
  • [コマンド]タブを選択します
  • 「コンテキストメニュー」ラジオボタンを選択し、「プロジェクトとソリューションのコンテキストメニュー|プロジェクト」を選択します。
  • 「再構築」を選択して移動または削除します。
于 2013-02-19T17:50:16.103 に答える
9

私の知る限り、プロジェクトまたはソリューションの再構築を実行するための確認を有効にする方法はありません。

最善のオプションは、コンテキストメニューの[再構築]メニュー項目を移動または削除することです。

  1. VSのメニュー/ツールバー領域を右クリックして、[カスタマイズ...]を選択します。
  2. 「コマンド」タブをクリックします。
  3. 「コンテキストメニュー」ラジオボタンを選択します。
  4. ドロップダウンリストで[プロジェクトとソリューションのコンテキストメニュー|プロジェクト]を見つけます。
  5. コンテキストメニュー表現の[再構築]メニュー項目をクリックして、目的のアクション(削除、上下に移動、新しいグループの開始など)を実行します。

メニューをデフォルト状態にリセットするには、[すべてリセット]ボタンをクリックします。

于 2013-02-19T17:47:12.740 に答える
3

「再構築」という新しいサブメニューを追加します

実際の再構築コマンドをこの新しいメニューに移動(削除してから追加)します。必要に応じて、名前を「Sure」に変更します。

于 2015-08-23T10:26:36.217 に答える
0

Visual Commanderツールには次のC#拡張機能を使用できます。

public class E : VisualCommanderExt.IExtension
{
    public void SetSite(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package)
    {
        events = DTE.Events;
        commandEvents = events.get_CommandEvents(null, 0);
        commands = DTE.Commands as EnvDTE80.Commands2;
        commandEvents.BeforeExecute += OnBeforeExecute;
    }

    public void Close()
    {
        commandEvents.BeforeExecute -= OnBeforeExecute;
    }

    private void OnBeforeExecute(string Guid, int ID, object CustomIn, object CustomOut, ref bool CancelDefault)
    {
        string name = GetCommandName(Guid, ID);
        if (name.Contains("Rebuild"))
        {
            if (System.Windows.MessageBox.Show("Are you sure you want to Rebuild?", "Confirm", 
                System.Windows.MessageBoxButton.YesNo) != System.Windows.MessageBoxResult.Yes)
            {
                CancelDefault = true;
            }
        }
    }

    private string GetCommandName(string Guid, int ID)
    {
        if (Guid == null)
            return "null";
        try
        {
            return commands.Item(Guid, ID).Name;
        }
        catch (System.Exception)
        {
        }
        return "";
    }

    private EnvDTE.Events events;
    private EnvDTE.CommandEvents commandEvents;
    private EnvDTE80.Commands2 commands;
}

Build.RebuildSolution、Build.RebuildSelection、Build.ProjectPickerRebuildなどのすべての再構築コマンドを確認するように求められます。

于 2016-10-21T03:51:28.457 に答える