- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想我使用了一个很常见的模式:
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,版本=4.2.0.0,文化=中性,PublicKeyToken=b77a5c561934e089"
这对我来说有点不可思议。据我所知,我们没有在任何地方使用 EntityFramework,仅将 Telerik 作为 ER。
我在项目目录中做了一个“findstr/s/i/m entityframework 。”。
有趣的是,它在 Sybase dll“SQL Anywhere 12\iAnywhere.Data.SQLAnywhere.v4.0.dll”中找到了它。
好的 - 这看起来有点像 sybase sql 数据提供程序。但据我所知,我们不需要 EntityFramework,该项目也按预期工作。
我该如何解决这个问题?就像说:我想解析 Appdomain,而不是一些第三方 dll。或者有什么办法可以忽略这个错误吗?
最佳答案
在这种情况下解析整个应用程序域将扫描所有已加载的 dll,如果它们未在您的应用程序中使用,则所有类型的所有类型都将被加载事件。我的德语不流利,但我认为该错误意味着未找到 EF dll。它需要加载一些您的代码未使用的类,并且在 appdomain 中加载的某些 dll 中声明,并且它需要 EF。你说你用Telerik,也许它有一些直接使用EF的控件?
如果您只想扫描您的 dll,那么简单的解决方案是引入程序集名称的约定。假设您的所有 dll 都将被命名为 OfflerCompany.ProjectName.Something
并扫描 dll 名称以查找 OfflerCompany
。
另请注意,dll 是延迟加载到 appdomain 的,因此如果您希望所有 dll 都存在,您可能会感到失望(如果所有 dll 都直接使用或至少一次未使用,则可能已经存在)。
您可能需要考虑创建包含所有需要扫描的 dll 名称的配置文件。这是我喜欢的最干净、最透明的解决方案。
关于c# - AppDomain.CurrentDomain.GetAssemblies() 在使用 Sybase 时抛出 System.Reflection.ReflectionTypeLoadException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13561007/
我有一个生产用户在尝试从 Outlook 互操作程序集中获取程序集类型时收到 ReflectionTypeLoadException。我需要编写应用程序代码以更好地调试问题,但我无法重现他的问题,因此
当我使用反射时,我遇到了一个带有非抽象方法的抽象类的问题。 下面是我的类(class)示例: abstract class ClassA { public abstract void Meth
我正在为 Windows 10 UWP 使用 EF7。 这让我极度沮丧。我正在从 Visual Studio 2015 中的程序包管理器控制台运行命令 add-migration "test"。我收到
可悲的是,对此异常的引用通常具有异国情调,并且可能发生在您例如通过 Assembly.GetTypes() 枚举类型- 举个例子,它发生在我们的一个部署上,但同一组程序集在集成服务器上运行良好。 为了
我们为我们的应用程序实现了一个插件框架,并使用 Assembly.Loadfrom 加载插件程序集。然后我们使用 GetTypes() 并进一步检查每个插件文件的类型以获得支持的接口(interfac
我试图通过在 C# 中使用 System.Reflection 将所有定义的类型检索到 .NET 程序集中。首先我加载程序集: var assembly = Assembly.LoadFrom("C:
我试图从 .NET 3.5 应用程序检查 silverlight 4 程序集中的类型。我已经用 Assembly.ReflectionOnlyLoadFrom 语句加载了 silverlight 程序
我在 MEF 中使用 DirectoryCatalog 来满足我应用程序中的导入。但是,当我尝试编写目录时,目录中有时会出现混淆程序集,导致 ReflectionTypeLoadException。
我正在尝试使用类似于以下的代码扫描程序集以查找实现特定接口(interface)的类型: public List FindTypesImplementing(string assemblyPath)
我正在尝试 .NET 的新 Spring CodeConfig,但遇到了很多麻烦。 我安装了 NuGet 包 Spring.CodeConfig到现有的 .NET 4 项目中,但除了遇到麻烦外别无其他
在我的项目中,我有以下辅助方法,它遍历所有程序集并获取属于 BaseCamaFrom 类型子类的所有类型。 public static List GetAllTestActionFormTyp
我发现在我的应用程序生成 Telerik 报告后 var result = new ReportProcessor().RenderReport("PDF", new InstanceReportSo
自从将工作的 MonoTouch 3.x 应用程序更新到 MonoTouch 4.0 后,我在尝试在模拟器上启动调试或发布构建时遇到以下错误: Unhandled Exception: System.
我收到类型为“异常详细信息:System.Reflection.ReflectionTypeLoadException:无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取
我收到此错误:运行时出现编译时错误 我在 unity 论坛上搜索过,他们说这是 System.Web.dll 文件问题,我已经清除了该问题,还重新导入了 Assets ,但它仍然无法正常工作。 Unh
我正在尝试在我的 Silverlight 应用程序中使用类型安全的 WeakReference。我正在按照本网站上的食谱进行操作:http://ondevelopment.blogspot.com/2
我尝试在 .NET 编译器平台(“Roslyn”)示例中创建类似 ConsoleClassifier 的东西。 (Microsoft.CodeAnalysis v0.7...)此时我得到一个Refle
在单元测试期间,我遇到了以下代码的问题,该代码要求所有已加载的程序集: var res = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(x
我在 Windows 窗体应用程序中使用 EF4。每当我在没有安装 visual studio 2010 的机器上运行发布文件时,我总是遇到这个错误: System.Reflection.Reflec
我正在使用 Windows 服务,其中我有一个程序集的引用,该程序集是 copy local= false。但是我试图在运行时加载它,虽然当我从 visual studio 运行它时工作正常,但是当我
我是一名优秀的程序员,十分优秀!