Может ли Visual Studio 2010 выполнить запрос перед перестройкой?

Любой способ иметь приглашение Visual Studio 2010 перед перестройкой или каким-либо другим способом упростить удаление "Перестроить" вместо "Сборка"?

Я потратил бесчисленные часы, когда я нажимаю правой кнопкой мыши на проекте и выбираю "Перестроить" в случае аварии, когда я хотел нажать "Сборка".

Это для собственного С++-решения.

Ответы

Ответ 1

Visual Studio 2010 позволяет настраивать меню. Вы можете удалить элемент "Перестроить" из контекстного меню "Проект". Или вы можете просто переместить команду "Перестроить" в сторону от команды "Создать", чтобы у вас было меньше шансов случайно попасть в неправильный элемент.

Из VS 2010,

  • Выберите меню "Сервис"
  • Выберите "Настроить..."
  • Выберите вкладку "Команды"
  • Выберите переключатель "Контекстное меню" и выберите "Проект и Контекстные меню решения | Проект "
  • Выберите "Перестроить" и переместите его или удалите.

Ответ 2

Насколько я знаю, нет возможности включить подтверждение для выполнения проекта или восстановления решения.

Ваш лучший вариант - переместить или удалить пункт меню "Перестроить" в контекстном меню.

  • Щелкните правой кнопкой мыши область меню/панели инструментов в VS и выберите "Настроить..."
  • Перейдите на вкладку "Команды".
  • Выберите переключатель "Контекстное меню".
  • В раскрывающемся списке найдите "Контекстные меню проекта и решения" Project.
  • Нажмите на пункт меню "Перестроить" в представлении контекстного меню и выполните требуемое действие (удаление, перемещение вверх или вниз, начало новой группы и т.д.).

В reset меню возвращается в состояние по умолчанию, нажмите кнопку "Reset all".

Ответ 3

Добавьте новое подменю под названием "Rebuild"

Переместить (удалить, затем добавить) настоящую команду Rebuild в это новое меню. Переименуйте его "Конечно", если хотите.

Ответ 4

Вы можете использовать следующее расширение С# для моего инструмента Visual Commander:

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.