如何在Visual Studio中多次启动同一项目

本文关键字:启动 项目 Visual Studio | 更新日期: 2023-09-27 18:30:15

如何在Visual Studio 2015中多次自动启动同一项目?

我知道你可以通过做来选择不同的项目。

转到"解决方案属性"-">通用属性"-"启动项目">然后选择"多个启动项目"

我还知道,您可以在解决方案资源管理器中右键单击它,然后选择"调试>启动新实例"以启动它的新副本。

但是我想启动同一个项目 5 次,我不想每次调试时重复上述 5 次步骤。

谢谢

如何在Visual Studio中多次启动同一项目

您可以利用这样一个事实,即可以在解决方案中将可执行文件添加为"项目"。这是解决您问题的一个非常肮脏的解决方案:

  1. 在项目的后期生成步骤中,创建 4 个额外的.exe副本
  2. 只需构建一次项目。
  3. 将多个 .exe 添加为"项目"(右键单击文件夹>"添加>现有项目",然后逐个选择您的前任)
  4. 现在,您可以设置"多个启动项目"以启动所有5个"项目",并同时调试它们。

我怎样才能多次自动启动同一个项目......但是我想启动同一个项目 5 次,我不想每次调试时重复上述步骤 5 次

你不能。

但是,您可以按 Ctrl+F5 五次。 对我来说,这是Debug.Start的默认键盘快捷键,无需调试。

它比鼠标容易一些,但仍然是手动任务。

我终于找到了一个相对"不错"的解决方案,但它需要使用容器。我已经在二进制文件中添加了Docker支持,并为docker-compose添加了编排支持。现在,我可以在我的docker-compose.yml中执行此操作:

version: '3.4'
services:   
  myapp.myappd:
    image: mcr.microsoft.com/dotnet/runtime:5.0-nanoserver-1903
    depends_on:
        - myapp.myappd.client
        - myapp.myappd.server   
  myapp.myappd.server:
    image: ${DOCKER_REGISTRY-}myappmyappd
    environment:
        - CONFIGFILE=config/config_server.txt
    build:
      context: .
      dockerfile: Myapp.Myappd'Dockerfile   
  myapp.myappd.client:
    image: ${DOCKER_REGISTRY-}myappmyappd
    environment:
        - CONFIGFILE=config/config_client.txt
    build:
      context: .
      dockerfile: Myapp.Myappd'Dockerfile

每个服务都需要"构建"或"映像"。由于我只想运行我的应用程序 2 次(一次作为服务器,一次作为客户端),因此我指定了一些随机图像。诀窍是"depends_on",它会导致实际的客户端/服务器启动。在我的应用程序中,我使用 Environment.GetEnvironmentVariable("CONFIGFILE") 来区分客户端和服务器。

我刚刚更新了我的程序.cs winforms项目,以在单独的线程上生成表单,如下所示:

internal static class Program
{
    /// <summary>
    ///  The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        // To customize application configuration such as set high DPI settings or default font,
        // see https://aka.ms/applicationconfiguration.
        ApplicationConfiguration.Initialize();
        for(var i = 0; i < 3; i++){
            var localI = i;
            var thread = new Thread(() => {
                var form = new Form1();
                form.Left = form.Width * localI;
                Application.Run(form);
            });
            thread.Start();
        }
        var resetEvent = new ManualResetEvent(false);
        resetEvent.WaitOne(); // Just wait forever
    }
}

您可以创建一个仅包含此程序的调试项目.cs仅用于在 VS 中启动 x 个实例以进行调试。然后你不会碰原始程序.cs在生产中你需要打开一个表单。