我在一个解决方案中有两个项目。我想要做的是将一个项目作为主项目(项目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
{
}
}
问题在于,如果我想在发布中运行它,那么这不起作用。
另一个注意事项是因为我不希望它总是在运行,所以我不想将它设置为解决方案属性中的起始项目。是否有更好的方法来启动同一解决方案中的另一个项目?
答案 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,它也将与您的启动项目并行运行。