我的解决方案包含多个可以启动的项目。有时我想在不使用我的解决方案启动项目设置的情况下启动单个项目。当我右键单击项目时,我可以导航到Debug-> Start New Instance,它使用调试器启动应用程序。
但我想在没有调试器的情况下启动一个新实例。这可能吗?
答案 0 :(得分:17)
如果您对永久解决方案感兴趣,那么我已为此任务编写了一个小宏。 它做了以下事情:
以下是我编写的宏以及如何执行此操作的步骤。
如何编写宏: 首先,您需要转到Visual Studio工具 - >宏 - >宏浏览器。右键单击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
如何将宏绑定到键盘快捷键: 为此,您需要转到工具 - >选项 - >环境 - >键盘。从listBox中选择带有所有默认VS东西的宏(记住它会像MyMacros.Module1.RunSelectedWithoutDebug那样),然后为它分配一个热键组合或和弦并保存。
注意:第四步是创建一个问题,并产生一个烦人的消息框说: 必须停止构建才能更改解决方案属性。停止构建?好或取消。我以前常常打Ok。如果宏没有任何问题,如果宏将当前选定的项目设置为启动项目,请注释宏的最后一行 Prop.Value = PrevStartup,将'放在行的开头。现在消息框不会出现。
我正在调查它并且一旦我解决它就会发布更新的宏(如果我可以:))
答案 1 :(得分:15)
将VSCommands扩展名添加到Visual Studio中,右键单击项目 - >调试 - >无需调试即可启动
答案 2 :(得分:14)
答案 3 :(得分:8)
我把这个宏放在一起..这是我在互联网周围发现的几个片段的组合。如果项目配置为运行默认项目输出,它将查找并运行该项目。如果它被配置为运行特定程序,它将运行该程序。此宏也不会编译您的应用程序,因此您需要确保在运行宏之前编译它。同时,这个宏不会受到上面Mahin宏观中提到的问题的影响。
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 :(得分:4)
以下是解决与Mahin宏相关的问题的方法
问题描述:第四步是创建一个问题并产生一个烦人的消息框说:必须停止构建才能更改解决方案属性。停止构建?好或取消。
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
享受!
答案 5 :(得分:3)
我一直在尝试做同样的事情。看起来VS团队的疏忽是你可以在解决方案级别启动或不启动调试,但只能在项目级别进行调试。
我注意到的一件事是,如果右键单击工具栏并选择“自定义”,则在操作的弹出窗口中,转到“项目”类别。在那里,有一个“运行”和“运行选定”的命令。有趣的是,我将其添加到我的项目上下文菜单和主按钮栏中,并且项目似乎始终被禁用。
同样有趣的是,项目上下文菜单的“Debug | Start New Instance”命令无法在可自定义命令列表中找到。我查看了几乎所有类别,但找不到它。
希望有人想出一个很好的方法来做到这一点......这会非常方便!
答案 6 :(得分:2)
在“调试”菜单下使用启动而不调试,或
控制 + F5
或者您可以修改项目的web.config文件:
<compilation debug="false"/>
答案 7 :(得分:2)
右键单击项目并将其设置为启动项目。
按Ctrl + F5
答案 8 :(得分:2)
简而言之。
您可以做的是将一个键绑定到“设置为启动项目”,然后绑定另一个键以启动而无需调试。然后你必须按2键来启动这个项目而不需要调试,但至少它比使用鼠标更快......
答案 9 :(得分:1)
我通常直接启动可执行文件。如果我需要一个没有调试模式的解决方案,我通常会将它们添加到任务栏上的某个快速启动菜单中。
答案 10 :(得分:1)
这很快:项目|设置为StartUp 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/
答案 11 :(得分:0)
有人做了一个插件来做到这一点。目前还没有真正处理aspnetcore项目:
https://marketplace.visualstudio.com/items?temName=vurdalak1.startwithoutdebugging
答案 12 :(得分:0)
右键单击解决方案,选择“属性”。选择多个启动项目。每个项目的组合框可让您决定启动哪些项目而无需调试。
答案 13 :(得分:-1)