Загрузите и запустите WPF DLL в другой исполняемый файл WPF
Моя главная проблема, как я уже говорил в заголовке.
WPF_APP1 -> Я создал dll этого проекта wpf после исключения App.xaml
WPF_APP2 -> Нормальный WPF exe. который должен запустить вышеупомянутую DLL WPF_APP1 и открыть форму главного окна WPF_APP1, используя отражение.
Почему я говорю для размышления -WPF_APP2 сначала получите последнююWPF_APP1.dll затем откройте, так что не можете добавить ссылку на DLL. использовать только отражение.
Когда я использую вышеупомянутый DLL в проекте CMD все в порядке. это открывает окно CMD, затем запускаетWPF_APP1 MainWindow как оконная форма.
Но теперь мне нужно открыть эту форму окна не в CMD, вWPF_APP2.
Пожалуйста, помогите мне.
CMD проекта используйте приведенный ниже код, чтобы открытьWPF_APP1 MainWindow.
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;
}
}
}
Я не могу использовать линию -
System.Windows.Application apprun = new System.Windows.Application();
В WPF_APP2 из-за AppDomain (нашел эту причину в гугле). Попробуйте другой вариант, но не повезло.
Пожалуйста, посмотрите и поделитесь своими знаниями. :)
жду ваших комментариев и ответа.
Спасибо