Lade und führe die WPF-DLL in eine andere WPF-Datei aus

Mein Hauptproblem ist, wie ich im Titel angegeben habe.

WPF_APP1 -> Ich habe eine DLL für dieses WPF-Projekt erstellt, nachdem App.xaml @ ausgeschlossen wurd
WPF_APP2 -> Normale WPF-Exe. Dies muss die obige WPF_APP1-DLL ausführen und das WPF_APP1-MainWindow-Formular mit Reflection öffnen.

Warum sage ich zum Nachdenken ist - WPF_APP2 zuerst die neuesten WPF_APP1.dll dann offen, so kann nicht die Referenz der DLL hinzufügen. muss nur die Reflection verwenden.

Wenn ich die obige DLL in Cmd-Projekt verwenden, ist es in Ordnung. Öffnen Sie das CMD-Fenster und starten Sie das WPF_APP1 MainWindow als Fensterform.

Aber jetzt muss ich dieses Fenster nicht in cmd öffnen, in WPF_APP2.

Bitte hilf mir

erwenden Sie den folgenden Code, um das @ CMD-Projekt zu öffne WPF_APP1 Hauptfenster

    static void Main(string[] args)
    {            
        Thread t = new Thread(ThreadProc);
        t.SetApartmentState(ApartmentState.STA);
        t.IsBackground = true;
        t.Start();

        Console.ReadLine();                   
    }


    private static void ThreadProc()
    {
        string loc = new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName
                      + "\\AutoUpdateTesting.dll";

        Assembly dll = Assembly.LoadFile(loc);

        foreach (Type type in dll.GetExportedTypes())
        {                
            if (type.Name.Equals("MainWindow"))
            {                   
                dynamic n = null;
                n = Activator.CreateInstance(type);
                n.InitializeComponent();
                System.Windows.Application apprun = new System.Windows.Application();
                apprun.Run(n);

                break;
            }
        }

    }

Ich kann die Zeile nicht verwenden -

    System.Windows.Application apprun = new System.Windows.Application();

In WPF_APP2 wegen AppDomain (fand diesen Grund bei Google). Versuchen Sie eine andere Alternative, aber kein Glück.

Bitte schauen Sie und teilen Sie Ihr Wissen. :)

arten auf Ihre Kommentare und Antwort.

Vielen Dan

Antworten auf die Frage(2)

Ihre Antwort auf die Frage