我最近注意到,当我开始我们相当大的应用程序时,总是有两个程序集加载,没人知道它们是什么。 每次我开始对应用程序进行调试时,这两个程序集都会以不同的名称命名。
例如,上次我得到这个输出(它是德语,但你会得到它):
...
"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个组件。
答案 0 :(得分:5)
这些是由框架内的各种api创建的临时临时程序集的名称,用于实现运行时代码生成。
Xml序列化在未预先生成时执行此操作。
如果您真的想知道抓取文件(如果您愿意,可以使用调试器附加到文件中)并使用反射器对其进行反编译。
内部应该为你提供一个很好的线索,说明是什么引发了他们的创作。
答案 1 :(得分:3)
这些是从例如ASP.Net应用程序中的页内代码(或者实际上在运行时动态生成程序集的任何地方)。