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

問題5、編譯后,運行時,不顯示主窗體界面

解決辦法:在App.xaml中的“StartupUri”屬性可以指定項目運行時的啟動窗體。如下圖中“StartupUri=”MainWindow.xaml”

 


 

 


 

其它慢慢積累


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM