我有一個WinForms應用程序,我編譯到DLL。c#從另一個應用程序運行我的c#DLL
我想使用DLL來運行從另一個winforms應用程序啓動應用程序。 因此,應用程序A將有一個選項來運行App B.
實現此目的的最佳方法是什麼?我應該使用DLL來獲得這個我的勝利形式的應用程序或EXE更好的選擇?
謝謝!
我有一個WinForms應用程序,我編譯到DLL。c#從另一個應用程序運行我的c#DLL
我想使用DLL來運行從另一個winforms應用程序啓動應用程序。 因此,應用程序A將有一個選項來運行App B.
實現此目的的最佳方法是什麼?我應該使用DLL來獲得這個我的勝利形式的應用程序或EXE更好的選擇?
謝謝!
當應用程序B完全獨立於應用程序A時,您應該使用EXE並以 System.Diagnostics.Process
(大約)開始。否則,您可以使用new
實例化應用A中的應用B的主窗口類,以「啓動」該應用。在這種情況下,您也可以使用EXE而不是DLL,DLL也可以作爲程序集引用。
我會讓.dll進入一個.exe。如果您有.dll文件的源代碼,那麼您可以修改項目屬性頁上的項目輸出以輸出可執行的二進制文件。如果您沒有源代碼,那麼您可以創建一個構建到.exe的新項目。新項目應引用和調用.dll文件。
若要從C#應用程序中打開.exe文件(假設.exe文件是在同一個地方作爲你的主要應用程序.exe),調用Process.Start如下:
Process.Start("MyOtherApplication.exe", "arg0 arg1 arg2");
這將啓動應用程序作爲完全獨立的Windows進程。所以殺死你的第一個應用程序將不會對第二個應用程序有影響。
@Matthias建議使用new
運算符啓動其他應用程序。如果您希望這兩個應用程序擁有相同的生命週期,並且可能共享內存,那麼這可能是合適的。
DLL不會自行運行(沒有GUI),所以馬蒂亞斯答案的第一部分就是你可能需要的東西。 – 2011-02-28 10:42:16