3

如果 Visual Studio 2010 基于 WPF,为什么我不能用反射器打开它?

换句话说,devenv.exe似乎是原生程序集,那么 WPF UI 代码在哪里呢?

4

1 回答 1

7

Visual Studiodevenv.exe可执行文件确实是一个本机程序。但是,本机程序可以加载 .NET 运行时,从而承载 Windows 窗体和 WPF 组件。事实上,Visual Studio 一直都是这样做的。甚至在 VS2010 为其编辑器和 shell 采用 WPF 之前,各种 Visual Studio 设计器都是在 Windows 窗体中实现的。如果您进入Common7\IDEandCommon7\IDE\PrivateAssemblies目录,您会发现许多可以在 Reflector 中查看的设计器 DLL(例如Microsoft.VisualStudio.ORDesigner.Dsl.dllLINQ to SQL 设计器)。

因此,Visual Studio 的新 WPF 位只是托管在本机可执行文件中的另一组托管程序集。我不确定哪些特定程序集承载 WPF 位——老实说,可能有几十个。但是查看调试器中的 VS 进程,我想说Microsoft.VisualStudio.Editor.dll(它位于 GAC 中,而不是 VS 安装目录中)将是一个不错的起点。

于 2010-04-21T02:48:45.127 回答