Может ли 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.