求助:生成ICSharpCode.SharpZipLib.dll与程序原有的版本不一致

问题描述

原有程序使用了ICSharpCode.SharpZipLib.dll的0.81.0.1047版本现有制作的外挂程序使用了ICSharpCode.SharpZipLib.dll的0.84版本怎么处理原有程序只能用0.81.0.1047版本的而且外挂程序只能放在原程序的目录下面

解决方案

解决方案二:
把新的ICSharpCode.SharpZipLib.dllcopy到主程序目录,换个名字,比如ICSharpCode.SharpZipLib_new.dll。在外挂程序最早被主程序使用的类的静态构造方法里加:AppDomain.CurrentDomain.AssemblyResolve+=(sender,eventArgs)=>{varname=newAssemblyName(eventArgs.Name);if(name.Name=="ICSharpCode.SharpZipLib"&&name.Version==newVersion(0,84,0,0))returnAssembly.LoadFrom(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"ICSharpCode.SharpZipLib_new.dll"));returnnull;};

解决方案三:
引用1楼github_22161131的回复:

把新的ICSharpCode.SharpZipLib.dllcopy到主程序目录,换个名字,比如ICSharpCode.SharpZipLib_new.dll。在外挂程序最早被主程序使用的类的静态构造方法里加:AppDomain.CurrentDomain.AssemblyResolve+=(sender,eventArgs)=>{varname=newAssemblyName(eventArgs.Name);if(name.Name=="ICSharpCode.SharpZipLib"&&name.Version==newVersion(0,84,0,0))returnAssembly.LoadFrom(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"ICSharpCode.SharpZipLib_new.dll"));returnnull;};

这个怎么理解?
解决方案四:
主程序加载外挂程序的时候,是要创建外挂程序中一个类的实例,然后调用上面的方法吧。相当于外挂程序被调用的入口点的那个类。因为那段AssemblyResolve的代码必须要尽早执行,在用到SharpZipLib之前。所以就找最早被主程序使用的类,它上面的静态构造会最先执行,放那里比较安全。

时间: 2024-10-11 23:04:48

求助:生成ICSharpCode.SharpZipLib.dll与程序原有的版本不一致的相关文章

C# 下利用ICSharpCode.SharpZipLib.dll实现文件/文件夹压缩、解压缩

ICSharpCode.SharpZipLib.dll下载地址 1.压缩某个指定目录下日志,将日志压缩到CompressionDirectory文件夹中,并清除原来未压缩日志. #region 压缩logs目录下日志 public static void CompresslogDic() { try { string logFilePath = AppDomain.CurrentDomain.BaseDirectory + "logs"; DirectoryInfo logsDic =

C#下利用ICSharpCode.SharpZipLib.dll实现文件/文件夹压缩和解压缩

1.压缩某个指定目录下日志,将日志压缩到CompressionDirectory文件夹中,并清除原来未压缩日志. #region 压缩logs目录下日志 public static void CompresslogDic() { try { string logFilePath = AppDomain.CurrentDomain.BaseDirectory + "logs"; DirectoryInfo logsDic = new DirectoryInfo(logFilePath);

UI不能调试:程序和源代码版本是一致的,但设断点后跟不进去。

问题描述 UI不能调试:程序和源代码版本是一致的,但设断点后跟不进去.自己重新建一个Asp.netweb应用程序是可以跟进去的自己已经重新编译过了.整个解决方案的所有项目都重新编译了.应该不会涉及到程序和源代码版本不一致的问题.VS2008已经重新修复了一遍,IIS也重装了一次,还是不行,挺奇怪.在选项里面的:要求程序和源代码版本必须保持一致.这个去掉对勾也跟不进去.虚心请教高人指点,谢谢! 解决方案 解决方案二:选择"重新生成新解决方案"编译试一试解决方案三:已经重新生成新解决方案了

ICSharpCode.SharpZipLib这个dll是谁写的

问题描述 我想问一下,ICSharpCode.SharpZipLib这个dll是谁写的?官方吗?有源码吗? 解决方案 解决方案二:老外的,反编译嘛

C#使用ICSharpCode.SharpZipLib压缩文件[转]

本文来自CSDN博客,出处:http://blog.csdn.net/venus0314/archive/2006/09/25/1280610.aspx   一直以来都是采用WinZIP进行压缩的,调用起来方便,而且公司也有版权,所以就没有考虑过其他的东东.不过唯一不足的地方就是需要安装(包括Win Zip和其Command Line Addon),而且需要让程序知道调用的WinZIP路径,配置起来不是很方便. 本次项目,考虑到程序的易配置性,决定采用另外别的方式进行压缩,找了找就找到了ICSh

visual studio 2015生成64位DLL文件

新建一个visual C ++  ->win32项目 点击生成->配置管理器新建一个64位debug位平台 hello.cpp程序代码如下: #include "stdafx.h" #include "jni.h" #include "com_magc_jni_HelloWorld.h" JNIEXPORT void JNICALL Java_com_magc_jni_HelloWorld_DisplayHello (JNIEnv *

缓存-未能加载文件或程序集“ICSharpCode.SharpZipLib"

问题描述 未能加载文件或程序集"ICSharpCode.SharpZipLib" 解决方案 没有找到dll文件,或者版本不对 解决方案二: 解决方法:重新引用工程下的DLL.把DLL放到当前工程BIN下面.再在VS中引用.直接引用工程外就报错.在WEB环境下测试的.

ICSharpCode.SharpZipLib.Zip 压缩Bytes[] 和 压缩后通过Socket发送给客户端 如何解决?

问题描述 我是菜鸟,刚刚接触C#我想实现如下两项功能首先将内存中Bytes[]传过来的数据通过ICSharpCode.SharpZipLib.Zip进行压缩,存放在一个文件中.因为,过一段时间,Bytes[]传一次,每次大约1MB的数据量.其次,将压缩后的文件通过Socket实时发送给客户端.请问大侠们如何解决,在解决的过程中尽可能降低内存的使用量,和CPU的利用率. 解决方案 解决方案二:byte[]压缩之后也还是byte[],这方面没什么不一样.既然你能够"传过来",那么实现&qu

不能ASP图像组件来生成图像的ASP计数器程序(一)

程序|计数器 不能ASP图像组件来生成图像的ASP计数器程序这是我去年编的一个ASP程序,那时用惯了C语言,所以对Basic反而忘了,但由于觉得ASP很热门,所以试着编了这个程序,程序没经过优化,代码很长,主要是数据那时候不知道该怎么用:) 别笑我,因为现在我会用啦!!这是个简单的计数器申请系统,采用文本,所以只要是支持ASP的空间就都可以测试!!其中TXT目录放的是所有人的计数文本文件number是用来统计当前申请计数器的最大人数 初始化内容为0apply.asp applycheck.asp