我正在使用Visual Studio 2010 Ultimate开发一个解决方案,其中包含两个C#项目:一个窗体项目和一个控制台项目。在程序上,它们是完全独立的;两个项目的主要部分都可以在没有另一个项目的情况下运行。我想做的是通过在窗体应用程序中按下一个按钮来调用控制台应用程序,并根据窗体应用程序设置特定的选项。因此,您可以将窗体应用程序视为仅仅是一个“启动器”应用程序。
我目前实现的方法是使用System.Diagnostics.Process.Start,第一个参数为“cmd”,第二个参数为控制台应用程序的可执行文件路径(加上CLI参数)。但这是一个可怕的解决方案,因为当部署到其他机器上时,它会崩溃。
我还尝试在Forms对象中创建对控制台项目的引用,使控制台项目中的Program公共和静态,并调用控制台项目的Main方法,但由于没有有效的输出句柄,这最终会导致异常被抛出。
我已经在Google上搜索了很多,也在SO上搜索了一些,并甚至检查了提交页面上的“类似问题”,但似乎没有人知道如何做我想做的事情。有什么指针可以让我走上正确的轨道吗?
FYI:我知道可能有十万种更好的方法来做这件事,但我有几个原因需要并需要以这种方式完成。我知道我可以只是为CLI程序制作一个单独的GUI,并复制相关代码,或将所有内容合并到一个项目中并创建一个单独的输出窗口,或其他类似的解决方案。但我需要这个解决方案有两个原因:(1)我有一个相当复杂的CLI程序,它作为CLI程序运行良好,现在需要一种用户友好的方式来启动它,(2)用其他方式解决问题并不回答“为什么要在同一个解决方案中有几个可执行项目,如果不能从另一个项目调用其中一个?”这个问题。
我目前实现的方法是使用System.Diagnostics.Process.Start,第一个参数为“cmd”,第二个参数为控制台应用程序的可执行文件路径(加上CLI参数)。但这是一个可怕的解决方案,因为当部署到其他机器上时,它会崩溃。
我还尝试在Forms对象中创建对控制台项目的引用,使控制台项目中的Program公共和静态,并调用控制台项目的Main方法,但由于没有有效的输出句柄,这最终会导致异常被抛出。
我已经在Google上搜索了很多,也在SO上搜索了一些,并甚至检查了提交页面上的“类似问题”,但似乎没有人知道如何做我想做的事情。有什么指针可以让我走上正确的轨道吗?
FYI:我知道可能有十万种更好的方法来做这件事,但我有几个原因需要并需要以这种方式完成。我知道我可以只是为CLI程序制作一个单独的GUI,并复制相关代码,或将所有内容合并到一个项目中并创建一个单独的输出窗口,或其他类似的解决方案。但我需要这个解决方案有两个原因:(1)我有一个相当复杂的CLI程序,它作为CLI程序运行良好,现在需要一种用户友好的方式来启动它,(2)用其他方式解决问题并不回答“为什么要在同一个解决方案中有几个可执行项目,如果不能从另一个项目调用其中一个?”这个问题。