2011-09-23 169 views
0

任何人都可以请帮助我如何将C#(Windows平台应用程序)转换为命令行版本?将C#(Windows应用程序)转换为commadline应用程序?

这种情况是:我在VS 2010中实现了C#(windows应用程序)。此应用程序的输出是生成一个txt(日志)文件(简单说明)。

现在情况是,有一个其他应用程序需要使用我的这个C#应用程序,通过在运行时从命令行调用我的C#应用​​程序。

我的问题是,如何将现有的C#应用​​程序转换为命令行应用程序,以便可以从调用(其他)程序调用此C#应用程序?有一个输入参数需要通过命令行传递给我的C#应用​​程序。然后这个C#应用程序将根据输入参数处理数据,然后生成输出日志(txt)文件。

请指导,任何建议将不胜感激!

添加说明:

对不起,挺晚的答复,但我真的解决方案在这里留下深刻的印象。你需要更多的专业知识,大师指出,我希望一个应用程序只能作为命令行应用程序以及Windows应用程序(以前忘记提及它,对不起!),这取决于传递给应用程序的输入参数的数量。从这个角度来看,我有两个选择来实现它,

1)为这两个应用程序(commandline和windows-forms)制作单独的函数。根据输入参数传递调用它们。在每个功能中实现每个应用程序的完整功能而不会干扰(或进入其他应用程序的代码)。此外,我还可以在编辑后重新使用2个主要功能,这些功能已经在Windows命令行应用程序中构建到我的命令行应用程序中。

缺点:这将使代码大小比情况下更接近50%2.

2)第二个想法是与由专家之一在这里描述,使用相同的应用程序/功能的命令行作为已经构建的Windows窗体应用程序。区分的唯一方法是查看输入参数传递,并据此决定是否显示GUI界面或仅使用命令行输入(并进行处理)。

缺点:由于额外增加了对输入参数决策次数的检查,这种情况会使代码变得混乱且难以维护/实现。

请咨询我需要采取哪种策略来实施。

感谢

+2

看看这个问题#1 http://stackoverflow.com/questions/807998/how-do-i-create-ac -app-that-decides-itself-whether-to-show-as-a-console-or-wind查看它是否适合你。 –

回答

1

只是如果你paramater传入,从其他程序调用时不显示GUI。

2

当然 - 只是:

  1. 创建一个新的VS2010的命令行项目

  2. 现在,您将有一个 “主()”(或在MS-土地,“_tmain( )“)函数而不是根类。

  3. 将相关代码剪切并粘贴到main()中(或者由main()调用的函数或从main()创建的类中 - 您的选择)。

  4. 做一个搜索和摧毁的任务,找到你正在做GUI输入的地方,并替换命令行参数。

  5. 解析你的命令行。

瞧!完成!

2

你想从命令行获得价值并不是将winform应用程序转换为控制台应用程序的好理由。您可以使用,

string[] args = Environment.GetCommandLineArgs();

但是你可以通过打开project properties更改应用程序类型(右键点击项目名称),并更改Output type

2

您不必转换它。您的应用程序可以保持为Windows应用程序。你只需要处理命令行参数。

从任何地方获取命令行参数的应用程序,只需使用Environment.GetCommandLineArgs();

相关问题