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

时间:2014-07-18 15:51:01

标签: c# project solution

我在一个解决方案中有两个项目。我想要做的是将一个项目作为主项目(项目1),并且不时地启动另一个项目(项目2)。我希望让Project 1持续运行,每分钟,我希望Project 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
            {

            }
        }

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

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

3 个答案:

答案 0 :(得分:2)

我真的不能想到一个漂亮的&#34;这样做的方式脱离了我的头顶。我想如果你想要一个快速而肮脏的解决方案,你可以使用预处理器指令来确定路径。像

这样的东西
#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

答案 1 :(得分:2)

我们过去所做的是Properties - &gt; Build Tab - &gt; Output path。对于Debug配置,我们通常将其设置为..\Output\Debug\,对于release配置,我们通常设置为..\Output\Release\。这会将您的两个项目放在同一个输出目录中,它们将位于相应的Debug / Release目录中。

这样,您可以在本地目录上下文中引用其他.exe。

编辑:为两个项目执行此操作,输出文件夹将是 $(SOLUTION_DIR)\输出\调试\

然后,您只需致电:

Process.Start("Project2.exe");

答案 2 :(得分:0)

我不太明白你为什么这么想。但我最近才学到的一点是你可以同时开始多个项目。

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

现在右键单击您的辅助项目,选择Debug-&gt; Start New Instance,它也将与您的启动项目并行运行。