如果VisualStudio2010基于WPF,为什么我不能用reflector打开它?
如果VisualStudio2010基于WPF,为什么我不能用reflector打开它如果VisualStudio2010基于WPF,为什么我不能用reflector打开它?,wpf,visual-studio-2010,reflector,Wpf,Visual Studio 2010,Reflector,如果VisualStudio2010基于WPF,为什么我不能用reflector打开它 换句话说,devenv.exe似乎是本机程序集,那么WPF UI代码在哪里呢?Visual Studiodevenv.exe可执行文件确实是本机程序。但是,本机程序可以加载.NET运行时,从而承载Windows窗体和WPF组件。事实上,VisualStudio一直在这样做。甚至在VS2010采用WPF作为编辑器和shell之前,各种VisualStudio设计器都是在Windows窗体中实现的。如果您进入Co
换句话说,
devenv.exe
似乎是本机程序集,那么WPF UI代码在哪里呢?Visual Studiodevenv.exe
可执行文件确实是本机程序。但是,本机程序可以加载.NET运行时,从而承载Windows窗体和WPF组件。事实上,VisualStudio一直在这样做。甚至在VS2010采用WPF作为编辑器和shell之前,各种VisualStudio设计器都是在Windows窗体中实现的。如果您进入Common7\IDE
和Common7\IDE\private assemblies
目录,您会发现许多可以在Reflector中查看的设计器dll(例如Microsoft.VisualStudio.ORDesigner.Dsl
是SQL设计器的关键)
因此,VisualStudio的新WPF位只是托管在本机可执行文件中的另一组托管程序集。我不确定哪些特定程序集承载WPF位——老实说,可能有几十个。但是看看调试器中的VS进程,我想说
Microsoft.VisualStudio.Editor.dll
(位于GAC中,而不是VS安装目录中)将是一个很好的起点。您想打开什么?我认为devenv.exe仍然是一个本机可执行文件:它只是加载.NET framework并启动环境。你是说它启动了一个新的可执行文件吗?它启动CLR,运行各种程序集(.dll
文件)中的托管代码,以及像msenv.dll
这样的程序集中的本机代码。