Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在启动时动态决定Winforms还是Wpf?_C#_.net_Wpf_Windows_Winforms - Fatal编程技术网

C# 在启动时动态决定Winforms还是Wpf?

C# 在启动时动态决定Winforms还是Wpf?,c#,.net,wpf,windows,winforms,C#,.net,Wpf,Windows,Winforms,我有一个用例,在这个用例中,如果有一个exe可以在启动时决定它是只托管WPF应用程序代码还是只托管WinForms代码,那将是非常有用的。一旦做出决定,exe只需加载一个dll(对于WinForms)或另一个dll(对于WPF) 我希望exe拥有尽可能少的代码(和引用),并将大部分(如果不是全部的话)应用程序逻辑放在一组DLL中。以下是我的想法: MyApp.exe <- The exe shim. MyApp.Core.dll <-

我有一个用例,在这个用例中,如果有一个exe可以在启动时决定它是只托管WPF应用程序代码还是只托管WinForms代码,那将是非常有用的。一旦做出决定,exe只需加载一个dll(对于WinForms)或另一个dll(对于WPF)

我希望exe拥有尽可能少的代码(和引用),并将大部分(如果不是全部的话)应用程序逻辑放在一组DLL中。以下是我的想法:

MyApp.exe                <- The exe shim.
MyApp.Core.dll           <- Things and Stuff.
MyApp.Windows.Forms.dll  <- The WinForms dll.
MyApp.Windows.dll        <- The WPF dll.

MyApp.exe在您的决策程序集上,只需调用并运行适当的应用程序。不要在开发中混用这些东西。

如果试图在一个应用程序中开发WPF和WinForms,那似乎是一场开发噩梦。为什么不让一个加载程序只检查标准并调用另外两个应用程序中的一个:WPF或WinForms应用程序?那么,它有什么特别可怕的地方呢?这是问题的一部分,所以如果你愿意,你可以继续把你的想法作为答案。当我构建一个WPF应用程序时,我会将大部分代码放在一个dll中,只将app.xaml(.cs)放在exe中。#1,它不受支持。您必须向在VS中创建的WinForms应用程序添加WPF代码/引用,或者向WPF应用程序添加WinFormst代码/引用。我不知道这对VS设计师意味着什么。此外,对设置、资源或app.config的任何影响都是未知的。#1 not supported是我听到的最佳答案。我现在把这件事放在一边,计划两个不同的前男友。没什么大不了的。谢谢。在WinForm中创建一个应用程序版本。在WPF中创建应用程序的另一个版本。他们彼此之间的了解就像微软Word对Firefox的了解一样多。然后创建第三个应用程序(批处理?),该应用程序根据任何标准决定运行哪个应用程序。如果您想走这条路,这是唯一可行的选择(尽管我无法想象会有这样的场景),因为WPF应用程序没有“传统的”外部入口点方法——入口点由
App
生成的类实现,在您的情况下,该类必须位于DLL中,但这不起作用。