zoukankan      html  css  js  c++  java
  • WPF 反编译后错误处理

    1. 首先,手动创建一个WPF工程(WpfApplicationReflectorDemo)

    2. 把生成的WpfApplicationReflectorDemo.exe 拖到ILSpy里

    3.点击 File -> Save Code...: 相应的代码会生成到指定地方。

    4. 打开应用程序,并且编译它,此时程序会报如下错误。主要原因是缺少相应的WPF所必备的DLL--WindowsBase和PresentationCore。添加这两个dll之后程序会编译通过。



    5. 这时我们还需要把相应的.XAML添加到应用程序中,我们在WpfApplicationReflectorDemo这个目录下添加与MainWindow.cs相关的MainWindow.xaml并且修改MainWindow.cs -->MainWindow.xaml.cs.与WPF的风格保持一致。这个时候我们需要把第二步看到的mainwindow.baml.中的内容添加到刚刚加入的MainWindow.xaml

    6. 这时我们需要到MainWindow.xaml.cs去删除一些多余反编译出来的属性,字段和方法。并且在public class MainWindow加访问修饰符 partial

    [GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
    internal TextBlock textBlock1;
    private bool _contentLoaded;
    public void InitializeComponent()
    void IComponentConnector.Connect
    7.添加App.xaml.去删除一些多余反编译出来的属性和方法.并且在public class App加访问修饰符 partial
    [GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
    public void InitializeComponent()
    7.最后删掉mainwindow.baml。 

    其它问题解决办法:


    问题1、 无法解析 Style Property“Template”。请确认拥有的类型是 Style 的 TargetType,或使用 Class.Property 语法指定 Property。 

    解决办法:将<Setter Property="Template">改为<Setter Property="Control.Template">


    问题2、在VS中,资源管理器,右键,”添加“--》”新建项...“时,没有任何项目可选

    解决办法:这种情况一般是项目文件的ProjectTypeGuids不正确导致,经过对比正常的项目发现,使用以下可以解决:

    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

    红色部分一定要大写,反编译出来的,是小写,WPF项目才能用。


    问题3、编译时,提示 Program does not contain a static 'Main' method suitable for an entry point,意思是没有包含Main方法

    解决办法:打开项目文件,找到

    <Page Include="App.xaml">
    <Generator>MSBuild:Compile</Generator>
    <SubType>Designer</SubType>
    </Page>

    替换为

    <ApplicationDefinition Include="App.xaml">
    <Generator>MSBuild:Compile</Generator>
    <SubType>Designer</SubType>
    </ApplicationDefinition>

    这样编译时,会自动产生Main方法,不需要自己手动建立。


    问题4、编译时,提示   错误 命名空间“clr-namespace:”中不存在“LocalizedStrings”名称。

    解决办法:

    重新启动Visual Studio,如果仍然有错误,尝试清理解决方案,然后退出Visual Studio,重新编译

    如果还是不行,再试试

    1. 关闭Visual Studio
    2. 文件夹位置 : "%LOCALAPPDATA%MicrosoftPhone ToolsCoreCon".
    3. 删除文件夹的内容: 10.0 和 11.0.

    问题5、编译后,运行时,不显示主窗体界面

    解决办法:在App.xaml中的“StartupUri”属性可以指定项目运行时的启动窗体。如下图中“StartupUri=”MainWindow.xaml”

     



    其它慢慢积累

  • 相关阅读:
    演练:创建和使用托管程序集 (C++)
    QT中各种MessageBox的使用
    QT使用打印机
    常用数据结构算法 c++模板实现
    创建可重用代码(C++)
    演练:创建和使用动态链接库 (C++)
    一些面试题,整理自网络,就不一一帖原址了
    《实践与思考》系列连载(4)——众说纷纭“架构师”
    XML Web Service并发异步调用的问题及其解决方案
    《实践与思考》书籍连载系列反馈区
  • 原文地址:https://www.cnblogs.com/wuchitao/p/6512037.html
Copyright © 2011-2022 走看看