这个集会是什么?为什么会这样?

时间:2009-08-06 15:18:55

标签: .net assemblies

我最近注意到,当我开始我们相当大的应用程序时,总是有两个程序集加载,没人知道它们是什么。 每次我开始对应用程序进行调试时,这两个程序集都会以不同的名称命名。

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

...
"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-M?

我查看了Assembly.CurrentDomain.GetAssemblies()以获取更多信息。

这里有两个组件的一些信息:

CodeBase / 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个组件。

2 个答案:

答案 0 :(得分:5)

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

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

如果您真的想知道抓取文件(如果您愿意,可以使用调试器附加到文件中)并使用反射器对其进行反编译。

内部应该为你提供一个很好的线索,说明是什么引发了他们的创作。

答案 1 :(得分:3)

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