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%\Microsoft\Phone Tools\CoreCon\".
  3. 删除文件夹的内容: 10.0 和 11.0.

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

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



其它慢慢积累

WPF 反编译后错误处理的更多相关文章

  1. 转 C#反编译后的一些错误改正

    Xenocode反编译及代码整理记录1.Xenocode中设置输出数字为十进制 2.输出后中文文本为\uXXXX,可采用编码工具转成中文 3.new ()改成null; 4.反编译后代码中嵌套数组ne ...

  2. Winform工程反编译后的工作

    Winform工程,反编译后,虽然能用,但不太好用. 因为form并没有像原生的那样. 所以,需要几个步聚: 1. 用ResGen工具,把二进制资源文件还原为xml格式: ResGen fromXX. ...

  3. Winform 工程反编译后窗体如何显示

    Winform反编译后,如果想要让它象正常的工程一样,可以在窗体编辑器中,编辑,需要做一些工作. 1.  转换.resources 为 .resx 利用resgen工具.这个工具是vs自带的. 在启动 ...

  4. JD-GUI反编译后代码逻辑分析

    一,用jd-gui.exe等工具查看源代码.如何你不会,可以参看此文章: http://blog.csdn.net/hp_2008/article/details/8207879 可以到以下连接下载可 ...

  5. winform代码反编译后图片等资源文件恢复解决方案

    用Reflector工具反编译的winform代码,图片等资源文件不能很好的反编译成功. 这里有一个笨的解决方案.首先我们要了解图片资源当初加入到工程的几种方式,及他们所在的位置. 一般winform ...

  6. 实现android apk反编译后代码混淆

    通常情况下我们需要对我们开发的android代码进行混淆,以免代码在反编译时暴露敏感信息及相关技术代码: 反编译测试工具:onekey-decompile-apk-1.0.1. 在高级版本的adt创建 ...

  7. 常见反编译产生错误 k__BackingField 解决办法

    常见反编译产生错误 k__BackingField 解决办法     无聊反编译小蚂蚁出现上千的错同样的错       private bool <EnableRuntimeHandler> ...

  8. 恢复Reflector反编译后资源文件的办法

    反编译问题: 1.路径问题:如果遇到了Path.Combine,有错误改下即可 2.资源文件问题: 在Reflector下,对左边的资源管理窗口的Resources文件夹下的资源文件,进行右键点击,选 ...

  9. C#中修改Dll文件 (反编译后重新编译)

    Dll文件生成后,如没有源代码,又要修改其中内容 可以用微软自带的ildasm和ilasm程序 先用ildasm将dll文件反编译成il文件 ildasm Test.dll /out=Test.il  ...

随机推荐

  1. django2.x报错No module named 'django.core.urlresolvers'

    解决方法如下 from django.urls import reverse 最近从django1.9迁移到django2.0中出现一个意外的报错: No module named 'django.c ...

  2. Ubuntu16.04安装qt

    5.11官方下载网站: http://download.qt.io/official_releases/qt/5.11/5.11.1/ 可以直接下载linux系统下的.run安装包: 安装方式:htt ...

  3. (三)shiro的认证

    文章目录 认证思路 自定义用于登录检验的Realm的思路 代码实现 后记 认证思路 调用 SecurityUtils.getSubject() 方法,获取当前的 Subject 对象 : 调用 Sub ...

  4. 创建线程的三种方式(Thread、Runnable、Callable)

    方式一:继承Thread类实现多线程: 1. 在Java中负责实现线程功能的类是java.lang.Thread 类. 2. 可以通过创建 Thread的实例来创建新的线程. 3. 每个线程都是通过某 ...

  5. Python Http-server 使用

    Python内置的下载服务器 http.server  Python的Web服务器 python2 中SimpleHTTPServer python3 中 http.server 执行 python ...

  6. Python进阶:值传递,引用传递?不存在的,是赋值传递

    Python的变量及其赋值 c/c++/c#/java 里面都有值传递,引用传递的概念,在Python中是如何的? 例 a = 1 b = a print(id(a),id(b)) #14072334 ...

  7. C语言的关键字和数据类型

    C语言关键字 C语言数据类型

  8. PowerBuilder学习笔记之8.5高级窗口控件

    1.列表框控件 列表框控件(ListBox).图片列表框控件(PictureListBox).下拉列表框控件(DropDownListBox)以及下拉图片列表框控件(DropDownPictureLi ...

  9. Express配置ssl证书,为网站开启https

    本文不对express多做介绍,下面直奔主题: 一.下载证书(以腾讯云为例): 解压下载的压缩包,找到Nginx文件夹,里面有两个以crt和key结尾的文件,在你的项目根目录新建名为https的空文件 ...

  10. PAT-1030 Travel Plan (30 分) 最短路最小边权 堆优化dijkstra+DFS

    PAT 1030 最短路最小边权 堆优化dijkstra+DFS 1030 Travel Plan (30 分) A traveler's map gives the distances betwee ...