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