如何在同一解决方案中运行项目?

本文关键字:运行 项目 解决方案 | 更新日期: 2023-09-27 18:13:26

我在一个解决方案中有两个项目。我想做的是有一个项目作为主项目(项目1),并时不时地启动另一个项目(项目2)。我想让项目1连续运行,每分钟,我想让项目2启动,运行,然后关闭。

以下是我到目前为止所做的尝试:

        if (CurrentTime.Minute % 2 == 1 && CurrentTime.Second == 30 && CurrentTime.Millisecond < 5)
        {
            try
            {
                string ThisDir = Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).Parent.Parent.FullName + "''Project2''bin''Debug''Project2.exe";
                Process.Start(ThisDir);
            }
            catch
            {
            }
        }

问题是,如果我想在发布版中运行它,这不起作用。

另一个注意事项是,因为我不希望它总是运行,所以我不想在解决方案属性中将其设置为启动项目。是否有更好的方法来启动另一个项目,在相同的解决方案?

如何在同一解决方案中运行项目?

我们过去做的是Properties -> Build Tab -> Output path。我们通常将其设置为调试配置的..'Output'Debug',并将其设置为发布配置的..'Output'Release'。这将把您的两个项目放在相同的输出目录中,并且它们将在适当的Debug/Release目录中。

这样,您可以在本地目录上下文中引用另一个。exe。

编辑:对两个项目都这样做,你的输出文件夹将是$ (SOLUTION_DIR) ' '输出调试'

然后,只需调用:

Process.Start("Project2.exe");

我真的想不出一个"漂亮"的方法来做这件事。我猜如果你想要一个快速而肮脏的解决方案,你可以使用预处理器指令来确定路径。就像

#if DEBUG
    string ThisDir = Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).Parent.Parent.FullName + "''Project2''bin''Debug''Project2.exe";
#else
    string ThisDir = Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).Parent.Parent.FullName + "''Project2''bin''Release''Project2.exe";
#endif

我不太明白你为什么要那样做。但我最近才知道,你可以同时开始多个项目。

。按F5,启动项目开始运行。

现在右键单击次要项目,选择Debug->Start New Instance,它也将与启动项目并排运行。