wpf反编译只有函数没有脚本
1. 我用c#wpf做的 菜单,Command和键盘事件,出现这个错误,有没有大神知道这个错误怎样解
这个错误跟代码没关系。
编译器编译的时候(如果代码有更新),需要删除掉原有的exe文件和依赖的dll文件。然后重新生成新的。
windows系统下,当一个文件正在被使用时,是不允许删除或者覆盖操作的。(就像你打开了一个EXCEL,你是不可能删除他的,除非你先将其关闭)。
一般来说,当你停止调试(SHIFT +F5)或者关闭了这个程序时,进程是会被关闭的,但是由于各种各样的原因,会导致该进程没有被关闭。
所以,报这种“xxx正在被进程使用,无法访问该文件”的错误时,一般有两种方式
1、右键你的解决方案(不是项目,是解决方案),清理解决方案。 然后重新编译整个解决方案。
2、如果清理不管用, 将你的项目全部保存,然后关闭VS,重新打开该解决方案。
(尽管有点傻,但是这种问题确实经常出现)
2. WPF应用程序会被反编译吗
------解决方案--------------------
WPF程序当然能被反编译,但是xaml部分会变成bmal,不过内容和原先的xmal出入很大
------解决方案--------------------
没做混淆的都能反编译。问题是很难再改了。除非代码量很少的。
3. 反编译工具能看到XAML吗
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