继上次<ArcObject10.1降级至10.0>又遇到版本降级问题.通常的方式有: 方案一:重新编译 将源代码加载到解决方案中,修改相应dll的版本,比较快捷的方式是多选后,设置属性中特定版本项为False,VS会自动搜索本机相应版本并映射 方案二:反编译 现实和理想总会存在差距.经常,技术经理给你的是一个个dll,没有源码,或者找不到了.如果我们还要修改dll中的很多内容,这时,就不得不使用反编译技能了.对于.NET程序的反编译,可参考本博客的部分文章. http://www.cnblog…
不知道大家有没有这样的经历:现场实施时测试出一个bug,明明知道某个dll/exe文件只要修改一二行代码即可,但手头没有开发环境,紧急情况下,可以用reflector + reflexil 临时直接修改dll代码,然后重编译,替换原来的文件(当然:代码未混淆的情况下,这个也可以用来搞破解,这不在本文讨论之列) 步骤: 1.Relector 加载相关的dll后,启用Reflexil界面 2.找到需要修改的代码位置,然后参考下图,右击->Replace all with code 3.写新的代码 然…
在项目中修改bug会存才版本混乱的问题,加上dll中的依赖项目比较多,想要修改单个dll文件中的少量代码是很麻烦的. 可以使用Reflector和Reflexil可以手动修改单个dll文件,我使用的是.Net Reflector 8.5 + Reflexil 1.6. Reflexil是Reflector中的插件,打开Reflector点击tools—>add-ins 然后点击“+” 找到下载好的Reflexil,在tools里面就可以打开Reflexil插件 然后打开需要修改的dll文件,找到…
反编译工具 Reflector 破解版下载地址:http://pan.baidu.com/s/15UwJo 使用方法:略 反混淆工具De4Dot 开源软件 下载地址http://pan.baidu.com/s/1d4fLt 使用方法: 参见:http://www.cnblogs.com/jio92/p/de4dot.html 修改dell/exe代码工具 reflexil 下载地址 http://pan.baidu.com/s/1sjynuPn 使用方法:安装Reflector,Reflexil…
VisualStudio传统的csproj工程中,引用是没有继承功能的.例如,对于如下一个引用关系 App引用Assembly 1 Assembly 1引用Assembly 2 程序App在没有添加Assembly 2的引用的情况下,是不能直接访问Assembly 2的方法的.我们必须手动添加Assembly 2的引用. 在VisualStudio 2017中,Visua Studio引入了一个新的csproj格式(默认应用在.net core程序中启用),新格式下dll引用是默认可以继承的,也…
多谢大家支持! 昨天说了一下反编译与剥壳(.net破解一(反编译,反混淆-剥壳,工具推荐)),今天就来修改修改dll,为了方便,我自己写一个简单程序用来测试 代码如下: 一个 ConsoleApplication,输出Hello World. 现在我想修改它,让他输出我想要的内容,或者直接改变该方法的功能,但是没有源码,只有Console.exe 工具:Reflexil 它是Reflector的一个插件 工具获取:1.可以直接到Reflector官网下载http://www.red-gate.c…
原文:VS2017中 C# dll引用(C生成dll,C++生成dll)小结 - 简书 dll引用小结 一.dll与应用程序 动态链接库(也称为DLL,即为“Dynamic Link Library”的缩写)是Microsoft Windows最重要的组成要素之一,打开Windows系统文件夹,你会发现文件夹中有很多DLL文件,Windows就是将一些主要的系统功能以DLL模块的形式实现. 动态链接库是不能直接执行的,也不能接收消息,它只是一个独立的文件,其中包含能被程序或其它DLL调用来完成一…
有些不得已的时候,我们需要同时在代码中使用某个dll的不同版本.比如用低版本的dll中的方法导出数据,然后使用高版本的方法导入数据来实现数据的升级. 又或者需要同时使用第三方的dll不同版本.如何使它们并存于系统中是个难题. 如果同时存在于系统中,会出现ambiguous refrence(有歧义的引用)的编译错误.下文介绍如何使用aliases解决这个问题. 一, 构建两个不同版本的Project 首先构建2个不同的Project来模拟不同版本的dll引用, 这两个project中的命名空间和…
原文:控件注册 - 利用资源文件将dll.ocx打包进exe文件(C#版) 很多时候自定义或者引用控件都需要注册才能使用,但是如何使要注册的dll或ocx打包到exe中,使用户下载以后看到的只是一个exe,点击直接运行呢?就像很多安全控件,如支付宝的aliedit.exe那样. 现在介绍一种使用资源文件,将dll.ocx打包进exe,点击直接注册的例子: 首先,新建一个工程RegisterFile.  新建文件夹Resource,里面添加需要注册的ocx或dll.这里我添加的是dsoframer…
最近将我的开发环境从VS2015升级到VS2017,升级完后报如下错误,找不到Dev的引用,明明是重新装了dev为什么找不到呢? 经过查看dll引用地址,发现我的dev一开始是安装在C盘,dll引用路径就默认C盘了,后面重装后,我把dev安装到E盘了,所以就找不到了! 原因找到了就好办了,错误这么多需要一个一个更改引用吗?当然不用的,将项目卸载重新加载,VS会自动引用新地址,然后那些报红的问题都没有了.…