2009-08-06 81 views
2

我最近注意到,当我开始我们相当大的应用程序时,总会有两个程序集加载,但没有人知道它们是什么。 每次我开始调试应用程序时,这两个程序集都会以不同的方式命名。这是什么装配,它为什么在那里?

例如,上次我得到这个输出(这是在德国,但你会得到它):

... 
"start.vshost.exe" (Verwaltet): "C:\Windows\assembly\GAC_MSIL\System.Web.Services\2.0.0.0__b03f5f7f11d50a3a\System.Web.Services.dll" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert. 
"start.vshost.exe" (Verwaltet): "aslf4pbc" wurde geladen 
... 
"start.vshost.exe" (Verwaltet): "inyuae-m" wurde geladen 
"start.vshost.exe" (Verwaltet): "C:\Windows\assembly\GAC_MSIL\Microsoft.JScript\8.0.0.0__b03f5f7f11d50a3a\Microsoft.JScript.dll" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert. 
"start.vshost.exe" (Verwaltet): "C:\Windows\assembly\GAC_MSIL\Microsoft.Vsa\8.0.0.0__b03f5f7f11d50a3a\Microsoft.Vsa.dll" wurde geladen 
... 

aslf4pbc? inyuae米?

我看了一下Assembly.CurrentDomain.GetAssemblies()来获得更多的信息。

在这里,2个组件中的一些信息:

基本代码/ EscapedCodeBase:

"file:///C:/Windows/assembly/GAC_MSIL/system/2.0.0.0__b77a5c561934e089/System.dll" 

位置:

"" 

GlobalAssemblyCache

false 

ManifestModule

inyuae-m.dll respectively aslf4pbc.dll 

ManifestModule.FullyQualifiedName

"<Unbekannt>"/"<Unknown>" 

ManifestModule.Name

"<Unbekannt>"/"<Unknown>" 

我无法在文件系统中找到inyuae-m.dll和aslf4pbc.dll。

有没有关于位置的信息,这似乎对我来说很奇怪。有任何想法吗?或者我只是想念一些东西?

该应用程序相当陈旧,它是使用.Net 2.0开发的,但是一些较新的部件使用.Net 3.5,它由大约25个组件组成。

回答

5

这些是由实现运行时代码生成的各种api创建的临时程序集的名称。

Xml序列化在未预先生成时会执行此操作。

如果您确实想知道如何抓取文件(如果您喜欢以便能够访问调试器),并使用反射器对其进行反编译。

内部应该给你一个很好的线索,它是什么引发了他们的创作。

3

这些是由例如生成的瞬态组件生成的。 ASP.Net应用程序中的页内代码(或实际上运行时动态生成程序集的任何地方)。

相关问题