我正在使用mstest.testadapter和mstest.testframework,这两个版本1.2.0用于我的MS测试单元测试.在我的本地计算机(Visual Studio 2017)上,测试完美运行,但是在我们的构建服务器上,我们会收到此消息: 无法加载文件或组装 'microsoft.visualstudio.testplatform.ObjectModel,版本= 11.0.0.0, 文化=中性,publicKeyToken = B03F5F7F11D50A3A'或其中之一 依赖性.系统找不到指定的文件. 然后,我用Ildasm检查了此组件的参考,实际上是11.0.0.0版本(见下文) 但是,我找不到这个组件的V11,在线上只有v14版本:我也在我的机器上搜索,找不到V11. 所以我的问题,为什么测试在我的计算机上而不是在构建服务器上运行? 我尝试了装配绑定,但没有成功. 解决方案 您想要的Nuget软件包是Microsoft.test
以下是关于 assembly-loading 的编程技术问答
我正在查看MSDN文档,我仍然对加载LoadFile和LoadFrom之间的区别到底有些困惑.有人可以提供一个例子或类比来更好地描述它. MSDN文档使我更加困惑.另外,IS ReflectionOnlyLoadFrom与LoadFrom相同,只是它仅在反射模式下加载程序集. 由于我的.NET体验不是最伟大的,因此使用loadFile的MSDN文档有一些问题: 1)LoadFile检查具有相同身份但位于不同路径的组件是什么意思?什么是身份(示例)? 2)它指出LoadFile不会将文件加载到" LoadFrom上下文"中,也不会使用加载路径解决依赖关系.这是什么意思,有人可以提供一个例子? 3)最后,它指出LoadFile在这种有限的情况下很有用,因为从负载到具有相同身份而是不同路径的组件.它只会加载第一个这样的组件,这再次使我陷入同一问题,汇编身份是什么? 解决方案 这清除了吗? // path1 and path2 point to differ
我正在尝试创建我项目中插件.dll中实现的类的实例,以进行键入Discovery.我正在收到这个例外: 无法从组装中加载'动作' 'squidreports.datacollector.plugin.bes,版本= 1.0.0.0, 文化=中性,publicKeyToken = null'. 这是我正在使用的确切方法签名: US/Library/d133hta4(v = vs.110).aspx 换句话说,我正在尝试根据汇编名称和类名来产生对象,例如: object modelObject = Activator.CreateInstance((string)modelInfo.AssemblyName, (string)modelInfo.ModelName); 这里要注意的一个重要部分是,我使用的是大会的"简短"名称,而不是"完整"名称(包括版本,文化和公开). 但是,MSDN明确指出: 'gasemblyName'可以是以下内容: 汇编,没有路径或
为什么我要遇到以下错误?我该如何解决? 在rabbitmq.client.dll中出现了一个未经处理的例外. 无法加载文件或汇编'Microsoft.diarostics.tracing.eventsource,版本= 1.1.28.0,culture =中性,publicKeyToken = B03F5F7F11D50A3A'或其依赖项之一.位置的组件的清单定义与汇编引用不符. (Hresult的例外:0x80131040) 更新 在下面的评论部分中的评论之后,我试图找到 microsoft.diarostics.tracing.eventsource Visual Studio 2019 中的评论.我正在使用快捷方式Ctrl + Shift + T为此,但仍然找不到文件.文件可以放在哪里? 解决方案 您并不孤单 - 这是已知的问题与Rabbitmq .Net客户端有关,这也已在修复程序将与客户的下一个主要版本(V6)一起运送.在此之前,可以降级Nuget软件
我正在尝试使用PowerShell来调用一些使用Akka.net Actors的F#代码. f#代码在单元测试中以及从f#解释器运行时正常工作,但是当我从powershell cmdlet调用相同的代码时,我会得到以下例外: System.MissingMethodException: Method not found: 'Void Nessos.FsPickler.BinarySerializer..ctor(Microsoft.FSharp.Core.FSharpOption`1, Microsoft.FSharp.Core.FSharpOption`1)'. at Akka.FSharp.Serialization.ExprSerializer..ctor(ExtendedActorSyste
我目前使用Assembly.LoadFrom(String)在运行时加载程序集有问题. 虽然指定的组件恰好加载了,但是当目标框架为netcoreapp>或netstandard. 要找出我创建了一个由三个项目组成的简单解决方案的问题. 每个项目完全包含一个类. 我在这里使用Newtonsoft.Json作为nuget示例,但它可能是其他任何组件. classLibrary0.csproj net20;netstandard1.0 namespace ClassLibrary0 { public class Class0 { public System.String SomeValue { get;
我正在尝试在控制台应用程序中使用ASP.NET Core Configuration(特别是Microsoft.extensions.configuration.json).当我打电话IConfigurationRoot.Bind()时,它会给组装FileNotFound FileNotFound.System.ComponentModel.TypeConverter. 我的知识TypeConverter在System.ComponentModel system 汇编中的名称空间中,而不是虚拟System.ComponentModel.TypeConverter汇编. 这似乎是一个错误.还是我想念什么? 我是针对.net 4.5.2,已引用System,并安装了以下Nuget软件包:
我正在移植一个Java应用程序,其中从内存(字节数组)从运行时加载了类并"执行".我正在尝试在C#中实现相同的内容,但是在尝试从字节数组加载组件时,我遇到问题(System.IO.FileNotFoundException例外)(使用AppDomain.Load方法). static void Main(string[] args) { var domain = AppDomain.CreateDomain("foo"); domain.AssemblyResolve += new ResolveEventHandler(domain_AssemblyResolve); var assembly = domain.Load("MyAssembly"); } static Assembly domain_AssemblyResolve(object sender, ResolveEventArgs args) { // ... retur
我正在尝试将Unity升级到版本(2.1.505.2),但是当我运行应用程序时,我将获得以下FileLoadException 无法加载文件或汇编'microsoft.practices.unity, 版本= 2.0.414.0,文化=中性,publicKeytoken = 31BF3856AD364E35' 或它的依赖之一. 我们正在从Unity 2.0.414.0升级到2.1.505.2. 解决方案中的所有项目参考都指统一参考dll的正确版本 GAC中没有引用的统一DLL. (通过检查gacutil -l进行双重检查) 我从存档中删除了所有Unity DLL.用PowerShell 进行双检查 PS C:\> ls -rec -inc Microsoft.Practices.Unity.dll | foreach-object { "{0}`t{1}" -f $_.FullName, [System.Diagnostics.FileVersionInfo
假设系统已安装了.NET 4.0和.NET 4.5. 是否可以从组装书面定位.NET 4.0? 中加载和使用.NET 4.5组件 简单地说,我可以从.NET 4.0代码调用Assembly.Load加载.NET 4.5定位组件? 解决方案 假设系统为.NET 4.0和.NET 4.5: 如 marcgravell 由sehe 链接 4.5是在GAC中的4.0上方的原位安装;安装4.5后,4.5的组件 运行4.0 然后调用汇编.从.NET代码定位4.0(由4.0编译器编译),实际上将使用4.5 Framework实现来运行,因此我看不出任何理由无法加载4.5汇编. Margravell指出,当您尝试运行.NET 4.5在仅安装4.0的系统上编译的代码时,就会出现问题,因为收益率返回/中断迭代器的实现会导致缺少的方法参考.但这不应该影响您.
我正在尝试找到在运行时编译装配的方法并加载它们.基本意图是将它们存储在不在光盘上的数据库中.所以我写了一些代码,但看到了一个有趣的情况.这是我的代码: //SumLib namespace SumLib { public class SumClass { public static int Sum(int a, int b) { return a + b; } } } // Console app class Program { public static void AssemblyLoadEvent(object sender, AssemblyLoadEventArgs args) { object[] tt = { 3, 6 }; Type typ = args.LoadedAssembly.GetType("SumLib.S
我已经反对强大的难题.这是我的情况: 我正在使用插件框架构建一个应用程序.所有插件都必须扩展一个基本插件类.在相同的程序集中,我有一个辅助类,将序列化和反序列化类.这是一类普通的课程,它是全部使用的.结构如下: MyApp.dll |_ App.cs |_ HelperCollection.cs |_ PluginBase.cs MyPlugin.dll |_MyPlugin.cs (this extends PluginBase) |_Foo.cs 问题 我的问题是装配加载和锁定文件.应用程序的要求是插件可以随时覆盖.如果是这样,他们需要重新加载.它似乎是加载组件的最佳方法,使其未锁定(即,当应用程序仍在运行时,我可以覆盖它或吹走)是: byte[] readAllBytes = File.ReadAllBytes("MyPlugin.dll"); Assembly assembly = Assembly.Load(readAllBytes); 加载插
我正在使用 Windows 服务,其中我有一个程序集的引用,该程序集是 copy local=false.但是我试图在运行时加载它,虽然当我从 Visual Studio 运行它时工作正常,但是当我尝试安装它时,cmd 给出了这个错误: An exception occurred while trying to find the installers in the D:\Official\Pro jects\20131007_ImproveDN\build\debug\application s\SubscriptionService\SubscriptionService.exe assembly. System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for mo
假设系统有.NET 4.0和.NET 4.5安装. 是否可以从写入的组件中加载和工作.NET 4.0? 简单地放置,可以调用汇编.load从.NET 4.0代码加载.NET 4.5目标程序集? 解决方案 假设系统为.NET 4.0和.NET 4.5: 如 marcgravell的博客链接by sehe 4.5是在GAC中的4.0顶部的原始安装内安装;安装4.5,4.0运行时使用4.5个装配 然后调用从.NET代码的组合装载. . margravell注意,当您尝试运行只安装4.0的系统上的系统时出现问题,因为exiting返回/中断迭代器的实现导致缺少的方法引用.但这不应该影响你.