Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果VisualStudio2010基于WPF,为什么我不能用reflector打开它?_Wpf_Visual Studio 2010_Reflector - Fatal编程技术网

如果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

如果VisualStudio2010基于WPF,为什么我不能用reflector打开它


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

Visual Studio
devenv.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
这样的程序集中的本机代码。