草庐IT

C#:如何从 GAC 加载程序集?

我在GAC中有“mycomp.myassembly.dll”,但Load和LoadFrom抛出文件未找到异常并且LoadWithPartialName返回null。我正在执行以下操作:AssemblyNamename=newAssemblyName();name.Name="mycomp.myassembly.dll";Assemblyassembly=Assembly.Load(name);对于mycomp.myassembly.dll文件的FileNotFound失败,并且Assemblyassembly=Assembly.Load("mycomp.myassembly.dll")

c# - 项目之间的 VS2010 程序集引用失败

上下文:我的解决方案中有3个项目(C#、.NET4.0):Abc.Business(Dll项目)Abc.Test(测试项目)Abc.Ui(Wpf项目)Abc.Business是我的业务逻辑。它包含实体、管理器、服务等。Abc.Test有一个关于Abc.Business的项目引用并且是单元测试。他们运作良好。Abc.Ui有一个关于Abc.Business的项目引用Abc.Ui无法解析所有usingAbc.Business;错误日志显示:ErrorThetypeornamespacename'Business'doesnotexistinthenamespace'Abc'(areyoumi

c# - 在 Windows 8 中获取类型程序集

我正在尝试在Windows8中使用MEF。为了为容器构建我的AssemblyCatalog,我需要对程序集的引用。在过去,我会这样做:varcatalog=newAssemblyCatalog(typeof(App).Assembly);奇怪的是,Type对象上不再存在Assembly属性。有人知道一个好的解决方法吗?还有另一种方法来组装吗?我可以使用Assembly.Load加载它,但我需要程序集的名称。我也无法从类型中得到它。是否可以使用DirectoryCatalog替代方案?我不喜欢这个主意,但我会做我需要做的。 最佳答案

c# - 引用没有强名称的程序集

有没有办法在没有强名称的情况下引用库?当我在引用和重建解决方案中添加对程序集的引用时,一切都很好,但是当我从这个程序集解决方案中调用类时,它不会构建。输出表明引用的程序集应具有强名称。什么是最好的解决方案?强命名库不可取。 最佳答案 我认为您在这里遇到的问题是,您尝试从中添加引用的程序集正在使用强名称进行签名,但您尝试引用的程序集未签名。强名称程序集只能引用其他强名称程序集。要么对您引用的程序集签名,要么不对引用它的程序集签名。只有在实际调用该类时才会出现错误的原因是,如果没有代码实际调用引用的程序集,编译器将在编译输出中删除引用。

c# - Caliburn.Micro 无法匹配来自不同程序集的 View 和 ViewModel

我刚开始使用Caliburn.Micro。我正在尝试引导我的简单示例解决方案,将ShellView(用户控件)放在Test.App程序集中,并将ShellViewModel放在Test.ViewModel程序集中。我得到的是一个带有以下文本的窗口:“找不到Caliburn.Test.ViewModel.ShellViewModel的View”。但如果我将ViewModel移动到.App程序集,它会完美运行。这是Caliburn.Micro.Test程序集(可执行)中的Bootstraper:namespaceCaliburn.Micro.Test{publicclassAppBoots

c# - VS 告诉我添加对一个看似无关的程序集的引用。如何找出原因?

我创建了一个新的单元测试项目来测试我的NHibernate映射。NHibernate映射位于还包含EF实体的项目中。在我的单元测试中,我只使用甚至没有对EntityFramework的间接引用的类型,但是,当我编译单元测试项目时,我仍然收到以下错误:Thetype'System.Data.Objects.DataClasses.IEntityWithRelationships'isdefinedinanassemblythatisnotreferenced.Youmustaddareferencetoassembly'System.Data.Entity,Version=3.5.0.0

c# - 从程序集中强制卸载 DLL

我正试图从我的.NET进程中卸载一个行为异常的第三方DLL,因为它似乎导致了一个问题,这个问题总是可以通过重新启动我的应用程序来解决。我不想重新启动应用程序,而是想删除并重新加载DLL。DLL正在使用LoadLibrary加载并使用FreeLibrary删除(使用从P/Invoke网站获取的DllImport)。当我调用LoadLibrary()时,我看到DLL出现在ProcessExplorer的DLL列表中,而当我调用FreeLibrary()时,我看到DLL从列表中消失DLL-正如预期的那样。但是,一旦我调用了第三方库的Initialize()函数,FreeLibrary()就不

c# - 使用 DTO 而不是在公共(public)程序集中共享对实体的引用是否有好处?

我正试图为一个让我抓狂了很长时间的问题找到一个明确的最终答案。通常表示BLL应包含业务逻辑和业务对象(BO),并具有对DAL的引用。另一方面,DAL不能引用BLL,因此它不能接受BO作为参数,或返回BO作为返回值。这个问题最传统的答案是:a)接受简单参数,返回(最好是Typed)DataSets和DataTables返回数据:命名空间DAL{公共(public)课联系方式公共(public)数据表GetContacts(){...}公共(public)UpdateContacts(DataTable联系人){...}b)第二个最推荐的解决方案是定义临时的、可序列化的数据传输对象(DTO

c# - 如何找到所有包含匹配模式的类型/成员的程序集?

我有一个包含数千个文件的文件夹(可能包含嵌套的子文件夹),其中一些是DLL,而其中一些DLL是.NET程序集。我需要找到所有包含与特定模式匹配的类型/成员的程序集(例如"*Collection"或"Create*")。最好(最快)的方法是什么?只要使用不需要打开我的源代码,就可以推荐开源库。 最佳答案 也许这个api对你有用:http://cciast.codeplex.com/MicrosoftResearchCommonCompilerInfrastructure(CCI)isasetoflibrariesandanapplic

c# - 使用 Reflection.Emit 动态创建针对特定 .NET 运行时的程序集

我正在使用Reflection.Emit开发一个在运行时动态创建程序集的工具。该工具针对.NET4.5框架。我想知道是否可以指定动态生成的程序集目标是哪个.NET运行时(例如:指定将创建一个.NET3.5程序集)。 最佳答案 内置的反射发射在这里非常有限;你想要做的是告诉它使用特定的mscorlib程序集,但问题是很多反射发射涉及传递类型周围,​​这使得这非常困难。我发现解决这个问题的最务实的方法是切换到IKVM.Reflection.dll-IKVM.NET的一部分.此dll非常有意与Reflection.Emit具有相同的基本A