如何识别EXE是否为WPF

Jam*_*esM 6 wpf winforms

我试图找出一个EXE是WPF应用程序还是WinForms应用程序.关于我如何解决这个问题的任何建议?

我听说我可以使用Reflector工具,如果是这样的话怎么办呢?

谢谢.

Con*_*dev 6

尽管通常应用程序可以被归类为"要么"WPF或WinForms应用程序,所以可以实现互操作性,以便WinForms应用程序可以"托管"WPF控件,反之亦然.由于您的应用程序听起来像是引用了两组程序集,因此它可以同时使用它们.只是需要注意的事情.

无论如何,我刚刚在Reflector中打开了我的一个WPF项目,并且有一些明显的迹象表明它是一个WPF应用程序:

1)有一个App类有StartupUri一个Xaml文件(像这样)

public class App : System.Windows.Application
{
    // Methods
    [DebuggerNonUserCode]
    public void InitializeComponent()
    {
        base.StartupUri = new Uri("Window1.xaml", UriKind.Relative);
    }
Run Code Online (Sandbox Code Playgroud)

2)XamlGeneratedNamespaceEXE中有一个

3)在Resources '文件夹'中有.baml文件(可能在文件中<Application1>.g.resources).

4)窗口类(如果你可以在Reflector树中轻松找到它们)实现:

public class Window1 : System.Windows.Window
, System.Windows.Markup.IComponentConnector {
Run Code Online (Sandbox Code Playgroud)

如果你真的想要详细浏览Reflector,WinForms窗口将继承,System.Windows.Forms.Form所以你可以轻松发现你是否同时拥有WinForms和WPF.