草庐IT

c# - MSTest 找不到程序集

我正在使用MSTest我使用命令mstest/testsettings:local.Testsetting/testcontainer:folder\obj\Debug\test.dll这是输出,Runhasthefollowingissue(s):Warning:TestRundeploymentissue:Theassemblyormodule'Microsoft.Practices.Prism'directlyorindirectlyreferencedbythetestcontainer'test.dll'wasnotfound.Warning:TestRundeploymen

c# - 加载依赖于另一个域的程序集时出现 FileNotFound

这个问题在这里已经有了答案:AppDomain.Load()failswithFileNotFoundException(2个答案)关闭1年前。我正在尝试使用插件制作应用程序。我有MainLib.dll,我在其中使用1种方法创建了一些通用接口(interface)(让它成为ICommon)。然后,我制作了2个.dlls(plugins),它们引用了MainLib.dll并在某些类中实现了ICommon。此外,我删除了此.dll中的所有引用,System。然后,我创建了一个应用程序,它监视文件夹".\\Plugins"并加载newDomain中的所有.dll,检查.dll中的类型是否实现

c# - 为什么完全限定的程序集名称有时需要空格?

今天偶然发现了这个,我找不到任何相关信息。所以这就是为什么我在这里问。也许有人知道为什么。我在我的web.config中添加了自定义WCF行为扩展。它看起来像这样:(那里没有空格:MyNs.TracingErrorBehaviorElement,MyNs)它在我的开发机器、我们的临时服务器、我们的实时服务器等上运行得非常好。今天我们在客户服务器上安装了产品,但出现以下异常:System.Configuration.ConfigurationErrorsException:Anerroroccurredcreatingtheconfigurationsectionhandlerforsy

c# - 为什么我无法调试动态加载的程序集?

我正在开发一个WebAPI项目,该项目使用内部模拟框架来拦截和修改来自Controller的响应。它使用MEF加载一个程序集,其中包含在满足某些先决条件时执行的代码。我知道这工作正常,因为我可以在响应中看到模拟已执行,但由于某种原因我无法调试动态加载程序集中的代码。尽管断点看起来很活跃,但执行绝不会在那里中断。我尝试调用Debugger.Break();它确实中断了,但调用堆栈显示为空,VisualStudio仅显示此消息:我可以看到程序集及其符号已加载到模块窗口中:我可以在调用动态加载的程序集(behavior参数)之前中断,它看起来像这样:privateHttpResponseMe

C# 2.0 代码使用使用 C# 3.0 编译的程序集

这应该没问题,因为CLR实际上并没有改变?运行C#2.0代码的机器已经推出了.NET3.5。背景是我们有一个windows服务(用VS2005构建的.NET2.0exe,部署到~150台服务器)动态加载程序集(几乎像插件)来完成要求它的各种工作项目。每当我们推出新版本的总线逻辑时,我们只需将程序集放到FTP服务器上,Windows服务就会知道如何检查、获取和存储最新版本。现在使用VS2008和目标.NET2.0构建新程序集,我们知道它工作正常。但是,我们希望开始利用C#3.0语言功能(例如LINQ)并针对.NET3.5开发程序集,而无需构建和部署新版本的Windows服务。

c# - 解析程序集,模糊方式

这是设置:纯DotNET类库由非托管桌面应用程序加载。类库充当插件。这个插件加载它自己的小插件(所有DotNET类库),它通过将dll作为字节流读入内存来实现,然后Assemblyasm=Assembly.Load(COFF_Image);当那些小插件引用了其他dll时,问题就出现了。由于它们是通过内存而不是直接从磁盘加载的,因此框架通常找不到这些引用的程序集,因此无法加载它们。我可以将一个AssemblyResolver处理程序添加到我的项目中,我可以看到这些引用的程序集已删除。我很清楚在磁盘上的何处可以找到这些引用的程序集,但我如何才能确保我加载的Assmebly是正确的?简而言之

c# - 不同的 .NET 程序集引用取决于 32-64 位

这个问题在这里已经有了答案:Conditionallyuse32/64bitreferencewhenbuildinginVisualStudio(7个答案)关闭8年前。我从供应商处获得了32位和64位.NET程序集。它们具有完全相同的接口(interface)(相同的类、相同的方法等)出于某种原因,我永远无法在其他平台上运行一种类型。到目前为止,我一直在做的只是删除引用,然后根据需要重新编译。有没有更简单的方法来做到这一点?编辑我在想可以选择SVN来以某种方式解决这个问题吗?编辑程序集不在GAC中。而且,出现这种需求是因为我在两个平台上构建相同的程序,而不是尝试在另一个平台上运行在一

c# - 在运行时加载程序集并使用 Activator.CreateInstance() 创建实例

我试图在运行时加载一个程序集,但我不确定为什么我不能使用静态Activator.CreateInstance()在程序集中创建一个类型的实例。它适用于Assembly.CreateInstance()。stringassemblyFilename="MyAssembly.dll";stringassemblyName="MyAssembly";stringtypeName="MyAssembly.MyType";FileInfofileInfo=newFileInfo(assemblyFilename);这个有效:varassembly=Assembly.LoadFrom(assemb

c# - 无法加载文件或程序集 log4net

我已将log4net添加到我的项目中,它在我的机器上运行良好,但是当我将我的应用程序的发布版本发送给我的同事时,他收到此FileNotFoundException:Couldnotloadfileorassembly'log4net,Version=1.2.13.0,Culture=neutral,PublicKeyToken=669e0ddf0bb1aa2a'但奇怪的是,在我的app.config中我什至没有使用上面版本的log4net: 最佳答案 遇到了同样的问题。LinqToExcel库使用不同版本的log4net。解决方法:

c# - 是否可以从 .NET 测试暴露于 COM 的程序集?

我有一个.NET程序集,我通过一个tlb文件向COM公开了它,还有一个注册tlb的安装程序。我已手动检查安装程序是否正常工作以及COM客户端是否可以访问该库。到目前为止,还不错...但是,我正在尝试将一些自动化系统测试放在一起,以检查安装程序是否正常工作。作为其中的一部分,我已经在VM上自动安装,现在我想对安装的COM库进行一些调用以验证它是否正常工作。我最初考虑用VB6编写一些测试,但我已经有一大套用C#编写的测试,它们引用了.NET程序集。我希望我可以更改这些以引用.tlb,但是当我在VS2008中尝试此操作时出现错误:ActiveX类型库“blah.tlb”是从.NET程序集导出