Как запустить отдельный проект без отладки в Visual Studio?
Мое решение содержит несколько проектов, которые можно запустить. Иногда я хотел бы запустить один проект, не используя настройки параметров запуска моего решения. Когда я нажимаю правой кнопкой мыши на проекте, я могу перейти к Debug- > Start New Instance, который запускает приложение с помощью отладчика.
Но я хотел бы начать новый экземпляр без отладчика. Возможно ли это?
Ответы
Ответ 1
Если вас интересует постоянное решение, я написал небольшой макрос для этой задачи.
Он выполняет следующие действия:
- Возвращает текущий выбранный проект (он будет использовать первый выбранный проект, если вы выбрали несколько проектов.)
- Сохраняет текущий проект запуска
- Устанавливает текущий выбранный проект как проект запуска и запускает текущий выбранный проект в режиме "Старт без отладки".
- Восстанавливает начальный проект запуска в качестве запуска.
Ниже приведен макрос, который я написал, и процедура, как это сделать.
Как написать макрос:
Прежде всего, вам нужно перейти в Visual Studio Tools → Macros → Macro Explorer. Как только вы получили этот правый щелчок на MyMacros и создадите новый модуль (я его назвал CollapseAll).
Теперь отредактируйте новый модуль (дважды щелкните по нему), удалите все, что там, и вставьте в него этот материал.
Sub RunSelectedWithoutDebug()
Dim Projs As Array
Dim Proj As Project
Projs = DTE.ActiveSolutionProjects()
If (Projs.Length > 0) Then
Proj = Projs.GetValue(0)
Dim Prop As EnvDTE.Property
Prop = DTE.Solution.Properties.Item("StartupProject")
Dim PrevStartup As Object
PrevStartup = Prop.Value
Prop.Value = Proj.Name
DTE.ExecuteCommand("Debug.StartWithoutDebugging")
Prop.Value = PrevStartup
End If
End Sub
Как связать макрос с сочетанием клавиш:
Для этого вам нужно перейти в Инструменты → Параметры → Среда → Клавиатура. Выберите свой макрос из спискаBox со всеми файлами VS по умолчанию (помните, что он будет там, как MyMacros.Module1.RunSelectedWithoutDebug), а затем назначьте ему комбинацию горячих клавиш или аккорд и сохраните.
Примечание: Четвертый шаг создает проблему и порождает раздражающее сообщение, в котором говорится:
Строку необходимо остановить, чтобы изменить свойство решения. Остановить сборку? Ок или Отмена. Раньше я нажимал Ok на время. Если у вас нет проблем, если макрос устанавливает текущий выбранный проект как проект запуска, чем прокомментируйте последнюю строку макроса
Prop.Value = PrevStartup, поместив "в начало строки". Теперь сообщение не появится.
Я изучаю его и опубликую обновленный макрос, как только я его разрешу (если смогу:))
Ответ 2
Добавить VSCommands расширение в Visual Studio, щелкните правой кнопкой мыши проект → Debug → Start Without Debugging
Ответ 3
Я только что собрал этот макрос.. Это комбинация нескольких фрагментов, которые я нашел вокруг interweb. Если проект настроен на запуск проекта по умолчанию, он найдет и запустит его. Если он настроен на запуск конкретной программы, он будет запускать это. Этот макрос НЕ будет компилировать ваше приложение, поэтому вы должны убедиться, что он скомпилирован перед запуском макроса. В то же время этот макрос не страдает от проблемы, упомянутой в макромене Махина выше.
Sub RunActiveProjectOutput()
Dim Projs As Array
Dim Proj As Project
Projs = DTE.ActiveSolutionProjects()
If (Projs.Length > 0) Then
Proj = Projs.GetValue(0)
Dim action = DirectCast(Proj.ConfigurationManager.ActiveConfiguration.Properties.Item("StartAction").Value, Integer)
If (action = 1) Then
Dim app = Proj.ConfigurationManager.ActiveConfiguration.Properties.Item("StartProgram").Value
Dim args = Proj.ConfigurationManager.ActiveConfiguration.Properties.Item("StartArguments").Value
System.Diagnostics.Process.Start(app, args)
Else
Dim fullPath = Proj.Properties.Item("FullPath").Value.ToString()
Dim outputPath = Proj.ConfigurationManager.ActiveConfiguration.Properties.Item("OutputPath").Value.ToString()
Dim outputDir = System.IO.Path.Combine(fullPath, outputPath)
Dim outputFileName = Proj.Properties.Item("OutputFileName").Value.ToString()
Dim assemblyPath = System.IO.Path.Combine(outputDir, outputFileName)
System.Diagnostics.Process.Start(assemblyPath)
End If
End If
End Sub
Ответ 4
Возможно, это ново в VS 2015, но нет необходимости добавлять настраиваемый макрос - вы можете найти пункт меню "Начать без отладки" в списке вещей, которые вы можете добавить.
Перейдите в раздел Инструменты → Настроить, следуйте приведенным ниже изображениям.
![Здесь вы можете найти пункт меню]()
Ответ 5
Вот способ решить проблему, связанную с макросом Махина
Описание проблемы: Четвертый шаг создает проблему и порождает раздражающее сообщение с сообщением: сборка должна быть остановлена, чтобы изменить свойство решения. Остановить сборку? Ок или Отмена.
Public Module Custom
Private WithEvents t As Timers.Timer
Private Prop As EnvDTE.Property
Private PrevStartup As Object
Private Sub StartTimer()
t = New Timers.Timer
t.Interval = 0.05
t.Start()
End Sub
Sub t_Elapsed(ByVal ee As Object, ByVal dd As Timers.ElapsedEventArgs) Handles t.Elapsed
If DTE.Solution.SolutionBuild.BuildState <> vsBuildState.vsBuildStateInProgress Then
t.Stop()
Prop.Value = PrevStartup
End If
End Sub
Sub RunSelectedWithoutDebug()
Dim Projs As Array
Dim Proj As Project
Projs = DTE.ActiveSolutionProjects()
If (Projs.Length > 0) Then
Proj = Projs.GetValue(0)
Prop = DTE.Solution.Properties.Item("StartupProject")
PrevStartup = Prop.Value
Prop.Value = Proj.Name
DTE.ExecuteCommand("Debug.StartWithoutDebugging")
StartTimer()
End If
End Sub
End Module
Наслаждайтесь!
Ответ 6
Я пытался сделать то же самое. Это похоже на надзор со стороны команды VS, которую вы можете начать с или без отладки на уровне решения, но только с отладкой на уровне проекта.
Одна вещь, которую я заметил, заключается в том, что если вы щелкните правой кнопкой мыши на панели инструментов и выберите "Настроить", в раскрывающемся окне действий перейдите в категорию "Проект". Там есть команда "Run" и "Run Selected". Интересно, что я добавил оба в контекстное меню проекта и на основную панель кнопок, и элементы, кажется, всегда отключены.
Также интересно, что контекстное меню проекта "Отладка | Начать новый экземпляр" нигде не встречается в списке настраиваемых команд. Я просмотрел почти каждую категорию и не смог ее найти.
Надеюсь, кто-то придумает хороший способ сделать это... это было бы очень удобно!
Ответ 7
Используйте Начать без отладки в меню Debug или
Ctrl + F5
или вы можете изменить файл web.config для проекта:
<compilation debug="false"/>
Ответ 8
Щелкните правой кнопкой мыши проект и установите его как проект запуска.
Нажмите Ctrl + F5
Ответ 9
Короче нет.
Что вы можете сделать, это связать ключ с "Задать как проект запуска", а затем связать другой ключ, чтобы начать без отладки. Тогда вам придется нажать 2 клавиши, чтобы запустить этот проект без отладки, но по крайней мере это будет быстрее, чем использование мыши...
Ответ 10
Я обычно запускаю исполняемый файл напрямую. Если мне нужно одно решение без режима отладки, я обычно добавляю их в меню быстрого запуска где-то на панели задач.
Ответ 11
Это довольно быстро: Project | Сделать стартовой | Текущий выбор. Затем, в зависимости от того, какой проект выбран, выполняется под Debug | Начать без отладки /Ctrl -f5.
https://blogs.msdn.microsoft.com/saraford/2005/11/29/how-to-set-your-current-project-to-always-be-the-startup-project/
Ответ 12
- Задайте требуемый проект как Startup Project (как было предложено)
- Отключите "Сборка" для всех других проектов в Configuration Manager Configuration.
- Начать без отладки.
Ответ 13
Установить Как проект запуска и нажмите Ctrl + F5 или выберите пункт меню "Отладка" + "Пуск" без отладки.