我想我使用了一个很常见的模式:
var result = from a in AppDomain.CurrentDomain.GetAssemblies()
from t in a.GetTypes()
where t.IsDefined(typeof(TAttribute), inherit)
select t;
如果我从 Program.cs 调用代码,它就可以工作。
此外,如果我从它的工作形式调用它 - 有时,取决于形式。有时它只是抛出一个错误:Mindestens ein Typ in der Assembly kann nicht geladen werden。Rufen Sie die LoaderExceptions-Eigenschaft ab, wenn Sie weitere Informationen benötigen。
详细信息中有以下信息:
{"Die Datei oder Assembly \"EntityFramework, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.":"EntityFramework, Version=4.2 .0.0,文化=中性,PublicKeyToken=b77a5c561934e089"}
这对我来说有点不可思议。据我所知,我们不在任何地方使用 EntityFramework,只有 Telerik 作为 ER。
我在 projekt 目录中做了一个“findstr /s /i /m entityframework . ”。
有趣的是,它在 Sybase dll“SQL Anywhere 12\iAnywhere.Data.SQLAnywhere.v4.0.dll”中找到了它。
好吧 - 这看起来有点像 sybase sql 数据提供程序。但据我所知,我们不需要 EntityFramework,并且该项目也可以按预期工作。
我该如何解决这个问题?就像说:我想解析 Appdomain,但不是一些第三方 dll。或者有什么办法可以忽略错误?