如果 Visual Studio 2010 基于 WPF,为什么我不能用反射器打开它?
换句话说,devenv.exe
似乎是原生程序集,那么 WPF UI 代码在哪里呢?
如果 Visual Studio 2010 基于 WPF,为什么我不能用反射器打开它?
换句话说,devenv.exe
似乎是原生程序集,那么 WPF UI 代码在哪里呢?
Visual Studiodevenv.exe
可执行文件确实是一个本机程序。但是,本机程序可以加载 .NET 运行时,从而承载 Windows 窗体和 WPF 组件。事实上,Visual Studio 一直都是这样做的。甚至在 VS2010 为其编辑器和 shell 采用 WPF 之前,各种 Visual Studio 设计器都是在 Windows 窗体中实现的。如果您进入Common7\IDE
andCommon7\IDE\PrivateAssemblies
目录,您会发现许多可以在 Reflector 中查看的设计器 DLL(例如Microsoft.VisualStudio.ORDesigner.Dsl.dll
LINQ to SQL 设计器)。
因此,Visual Studio 的新 WPF 位只是托管在本机可执行文件中的另一组托管程序集。我不确定哪些特定程序集承载 WPF 位——老实说,可能有几十个。但是查看调试器中的 VS 进程,我想说Microsoft.VisualStudio.Editor.dll
(它位于 GAC 中,而不是 VS 安装目录中)将是一个不错的起点。