Подтвердить что ты не робот

Как запустить отдельный проект без отладки в Visual Studio?

Мое решение содержит несколько проектов, которые можно запустить. Иногда я хотел бы запустить один проект, не используя настройки параметров запуска моего решения. Когда я нажимаю правой кнопкой мыши на проекте, я могу перейти к Debug- > Start New Instance, который запускает приложение с помощью отладчика.

Но я хотел бы начать новый экземпляр без отладчика. Возможно ли это?

4b9b3361

Ответ 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

Я обычно запускаю исполняемый файл напрямую. Если мне нужно одно решение без режима отладки, я обычно добавляю их в меню быстрого запуска где-то на панели задач.

Ответ 12

  • Задайте требуемый проект как Startup Project (как было предложено)
  • Отключите "Сборка" для всех других проектов в Configuration Manager Configuration.
  • Начать без отладки.

Ответ 13

Установить Как проект запуска и нажмите Ctrl + F5 или выберите пункт меню "Отладка" + "Пуск" без отладки.