2011-02-28 86 views
0

我有一个WinForms应用程序,我编译到DLL。c#从另一个应用程序运行我的c#DLL

我想使用DLL来运行从另一个winforms应用程序启动应用程序。 因此,应用程序A将有一个选项来运行App B.

实现此目的的最佳方法是什么?我应该使用DLL来获得这个我的胜利形式的应用程序或EXE更好的选择?

谢谢!

+0

DLL不会自行运行(没有GUI),所以马蒂亚斯答案的第一部分就是你可能需要的东西。 – 2011-02-28 10:42:16

回答

3

当应用程序B完全独立于应用程序A时,您应该使用EXE并以 System.Diagnostics.Process(大约)开始。否则,您可以使用new实例化应用A中的应用B的主窗口类,以“启动”该应用。在这种情况下,您也可以使用EXE而不是DLL,DLL也可以作为程序集引用。

1

我会让.dll进入一个.exe。如果您有.dll文件的源代码,那么您可以修改项目属性页上的项目输出以输出可执行的二进制文件。如果您没有源代码,那么您可以创建一个构建到.exe的新项目。新项目应引用和调用.dll文件。

若要从C#应用程序中打开.exe文件(假设.exe文件是在同一个地方作为你的主要应用程序.exe),调用Process.Start如下:

Process.Start("MyOtherApplication.exe", "arg0 arg1 arg2"); 

这将启动应用程序作为完全独立的Windows进程。所以杀死你的第一个应用程序将不会对第二个应用程序有影响。

@Matthias建议使用new运算符启动其他应用程序。如果您希望这两个应用程序拥有相同的生命周期,并且可能共享内存,那么这可能是合适的。

相关问题