1

我有一个内置在 Visual Studio 中的可执行文件,它通常作为单实例应用程序运行(即在我们的生产环境中)。我通过使用项目属性的“应用程序”选项卡上的“Windows 应用程序框架属性”区域中的“制作单实例应用程序”复选框来完成此操作,如下所示:

在此处输入图像描述

我的应用程序是一个工作流应用程序,因此它涉及将工作流项从一个用户传递给另一个用户;所有相关用户都在他们自己的计算机上运行此应用程序。

然而,在我的开发环境中,我经常想同时模拟几个不同的用户(这种模拟用户的能力是用户自己不知道的功能),以便解决一个复杂的错误。应用程序。同时打开多个实例更容易,每个实例都模拟不同的用户,在某些情况下,这是必要的,因为该错误可能仅在启动应用程序的初始开销已经承担后才会发生 - 换句话说,关闭切换用户上下文的应用程序释放状态,这将排除错误。

通过取消选中上述复选框,我可以轻松完成此操作;但是,我必须记住在部署错误修复之前的某个时间点重新检查它。如果我可以在仅存在于我的开发计算机上的应用程序之外设置一些东西会更好,例如注册表值,它会触发应用程序作为多实例应用程序运行。高低搜索了一遍,貌似之前没有人问过这个问题。

这里有人遇到过吗?您的帮助将不胜感激。

4

1 回答 1

1

我不确定这是满足您要求的最优雅的方式,但这是我们使用的方式。我们经常需要测试一个应用程序的多个实例(不允许用户运行多个实例。)

当 VS 编译器运行代码时,它会在实例中使用 .vshost 来运行它,因此在运行应用程序的同时使用此方法进行调试时不会出现问题。此外,如果您想在 Windows 中运行多个实例,只需重命名 .EXE 并运行即可。

Dim myProcesses() As Process
myProcesses = process.GetProcessesByName("NameOfYourApp")
If myProcesses.Length > 1 Then
    'Close app here 
    '(You can just .Close the startup form)
End If
于 2013-10-06T10:34:07.363 回答