2011-04-24 30 views
0

我写了一个WinForms应用程序,将在两个方面发挥作用:如何确定我是否从Visual Studio IDE运行应用程序?

  1. 如果没有命令行提供参数,应用的主要形式将显示出来,用户可以与应用程序交互。

  2. 如果提供了一个命令行参数,主窗体不会显示,应用程序会执行由命令行参数定义的操作,然后关闭。

我也想用一个消息显示命令行参数传递给用户,如果应用程序从Visual Studio IDE中运行,并在命令行arugment已在属性\ Debug设置中指定。

回答

2

如果您需要确定一个给定的过程的“父进程”,这里是SO链接:How to get parent process in .NET in managed way

话虽这么说,我会做什么,而不是一分为二的方案:一个类库(一个DLL,它将包含你程序所做的所有真正的肉)以及一个引用这个类库的EXE。这样你就可以创建第三个项目作为一个VS Addin,它也会引用这个类库,但是会隐含地意识到它是从VS运行的。

+0

+1创建 – 2011-04-24 14:38:40

+0

我的解决方案已经被分隔成简报(的WinForms .EXE),BLL和DAL(.DLL文件)层不同的可执行文件。使用VS Addin是一个有趣的想法。我会尝试一下。虽然我的主要兴趣是避免混淆,如果另一个开发人员需要拿起项目,并且当WinForms应用程序从VS运行并且已经在属性中分配了命令行参数时什么都不会发生。 – 2011-04-24 14:53:36

3
+0

好简单的解决方案。谢谢。 – 2011-04-24 15:19:45

+0

没有忧虑。 System.Diagnostics命名空间有很多非常有用的东西。值得一看。 – 2011-04-24 15:26:21

相关问题