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,重新編譯
如果還是不行,再試試
- 關閉Visual Studio
- 文件夾位置 : "%LOCALAPPDATA%\Microsoft\Phone Tools\CoreCon\".
- 刪除文件夾的內容: 10.0 和 11.0.
問題5、編譯后,運行時,不顯示主窗體界面
解決辦法:在App.xaml中的“StartupUri”屬性可以指定項目運行時的啟動窗體。如下圖中“StartupUri=”MainWindow.xaml”
其它慢慢積累