簡體   English   中英

從控制台應用程序exe在DLL中啟動WPF應用程序

[英]Launch a WPF application in a DLL from a console application exe

目前我在同一個解決方案下有兩個獨立的C#項目,我們稱之為Window.exe和Console.exe。 Window.exe是一個WPF MVVM應用程序,可以很好地獨立運行。

為了消除一個小問題,我的目標是將Window.exe轉換為Window.dll,然后使用Console.exe加載Window.dll。 我試圖調用App.Run(),或者在App_Startup中移動例程,該例程用於將主窗口啟動到單獨的方法並調用它。 運行Window.dll的新線程無法真正持續。 當我在調試中進入GUI時,它能夠填充GUI,但我無法與它進行交互。

關於我應該如何進行的任何想法?

通過做兩件事我能夠做到這一點:

  1. 您需要在控制台應用程序中將Main方法標記為STAThread方法,因為UI需要位於STA線程上。 如果不這樣做,則在調用主窗口的構造函數時會出現異常。

  2. 確保在Run()之前調用InitializeComponent()。 如果不這樣做,應用程序將運行,但窗口將不會首先設置。

我能夠在一個解決方案中使用它,我也有一個WPF主應用程序和控制台應用程序來測試事物:

[STAThread]
static void Main(string[] args)
{
   WpfApp.App app = new WpfApp.App();
   app.InitializeComponent();
   app.Run();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM