我的解决方案包含多个可以启动的项目。有时我想在不使用解决方案启动项目设置的情况下启动单个项目。右键单击项目时,可以导航到“调试”->“启动新实例”,这将使用调试器启动应用程序。
但是我想在没有调试器的情况下启动新实例。这可能吗?
我的解决方案包含多个可以启动的项目。有时我想在不使用解决方案启动项目设置的情况下启动单个项目。右键单击项目时,可以导航到“调试”->“启动新实例”,这将使用调试器启动应用程序。
但是我想在没有调试器的情况下启动新实例。这可能吗?
Answers:
如果您对永久解决方案感兴趣,那么我已经为该任务编写了一个小宏。它做以下事情:
下面是我编写的宏以及执行该操作的过程。
如何编写宏: 首先,您需要转到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
如何将宏绑定到键盘快捷方式: 为此,您需要转到“工具”->“选项”->“环境”->“键盘”。从列表框中选择所有默认VS素材的宏(请记住,它将像MyMacros.Module1.RunSelectedWithoutDebug一样存在),然后为其分配热键组合或和弦并保存。
注意:第四步是创建问题,并产生一个令人讨厌的消息框,其中说:必须停止构建才能更改解决方案属性。停止构建?确定或取消。我过去经常打Ok。如果宏将当前选定的项目设置为Startup项目没有任何问题,请在行的开头加上',注释宏Prop.Value = PrevStartup的最后一行。现在,消息框不会出现。
我正在研究它,一旦解决了它就会发布更新的宏(如果可以的话:))
将VSCommands扩展名添加到Visual Studio中,右键单击一个项目->调试->在不调试的情况下启动
我只是把这个宏放在一起。它是我在互联网上发现的几个片段的组合。如果将项目配置为运行默认项目输出,它将找到并运行该项目。如果配置为运行特定程序,它将运行该程序。此宏也不会编译您的应用程序,因此您需要在运行宏之前确保已对其进行了编译。同时,此宏不会遇到上面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
我一直在尝试做同样的事情。似乎是VS团队的疏忽,您可以在解决方案级别开始或不进行调试,但只能在项目级别进行调试。
我注意到的一件事是,如果右键单击工具栏并选择“自定义”,则在操作的弹出窗口中,转到“项目”类别。在那里,有一个“运行”和“选择运行”的命令。有趣的是,我既添加了项目上下文菜单,又添加了主按钮栏,这些项目似乎总是被禁用。
同样有趣的是,在可自定义命令列表中找不到项目上下文菜单的“调试|启动新实例”命令。我浏览了几乎所有类别,但找不到。
希望有人想出一个好方法来做到这一点……这真的很方便!
这是解决与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
请享用 !
在调试菜单下使用启动而不进行调试,或者
Ctrl+F5
或者,您可以修改项目的web.config文件:
<compilation debug="false"/>
Alt
+ F5
(启动单个项目的新实例)一样,但是无需调试。
这很快:Project | 设置为启动项目 当前选择。然后,无论选择哪个项目,都可以在“调试” |“调试”下运行。在不调试的情况下启动/ Ctrl-f5。 https://blogs.msdn.microsoft.com/saraford/2005/11/29/how-to-set-your-current-project-to-always-be-the-startup-project/
我通常直接启动可执行文件。如果我需要一个没有调试模式的解决方案,我通常将它们添加到任务栏上某个地方的快速启动菜单中。
有人制作了一个插件来执行此操作。尽管目前还不能真正处理aspnetcore项目:
https://marketplace.visualstudio.com/items?temName=vurdalak1.startwithoutdebugging