导航:首页 > 源码编译 > dll修改后编译未更新

dll修改后编译未更新

发布时间:2022-07-03 02:22:20

❶ 为什么修改了软件的dll文件程序运行的时候就出错了

不好说,可能性很多。可能是这个 DLL 加了壳,或者做了HEAD诡计。导致DLL修改资源后不能正常使用,也可能是调用DLL的EXE模块对DLL做了校验。

运行出错的提示是什么??

❷ 无法更新文件问题怎么解决

要解决此问题,请重命名 Edb.log 文件,然后尝试再次安装此程序。要重命名 Edb.log 文件,请按照下列步骤操作: 1. 单击“开始”,单击“运行”,在“打开”框中键入 cmd,然后单击“确定”。
2. 在命令提示符处,键入以下命令并按 Enter:
ren %systemroot%\system32\catroot2\Edb.log *.tst 方法 2:将“加密服务”设置为自动
将“加密服务”设置为“自动”,然后尝试再次安装此程序。要将“加密服务”设置为“自动”,请按照下列步骤操作: 1. 启动“控制面板”中的“管理工具”实用工具。
2. 双击“服务”。
3. 右键单击“加密服务”,然后单击“属性”。
4. 对于“启动类型”,请单击“自动”,然后单击“启动”。
注意:Windows 2000 未在“服务”管理实用工具中列出“加密服务”。 方法 3:重命名 Catroot2 文件夹
重命名 Catroot2 文件夹(仅适用于 Windows XP 和 Windows Server 2003),然后尝试再次安装此程序。注意:如果操作系统为 Windows 2000,则跳过此方法。要重命名 Catroot2 文件夹,请按照下列步骤操作: 1. 单击“开始”,单击“运行”,在“打开”框中键入 cmd,然后单击“确定”。
2. 在命令提示符处键入以下命令,并在键入每行后按 Enter:
net stop cryptsvc
ren %systemroot%\System32\Catroot2 oldcatroot2
net start cryptsvc
exit
重要说明:不要重命名 Catroot 文件夹。Catroot2 文件夹是由 Windows 自动重新创建的,但 Catroot 文件夹在重命名后不会重新创建。 方法 4:重新注册与“加密服务”关联的 DLL 文件
要注册与“加密服务”关联的 .dll 文件,请按照下列步骤操作: 1. 单击“开始”,单击“运行”,在“打开”框中键入 cmd,然后单击“确定”。
2. 在命令提示符下,键入以下命令,并在键入每行命令后按 Enter:
regsvr32 /u softpub.dll
regsvr32 /u wintrust.dll
regsvr32 /u initpki.dll
regsvr32 /u dssenh.dll
regsvr32 /u rsaenh.dll
regsvr32 /u gpkcsp.dll
regsvr32 /u sccbase.dll
regsvr32 /u slbcsp.dll
regsvr32 /u mssip32.dll
regsvr32 /u cryptdlg.dll
exit
注意:得到提示时单击“确定”。注意:Microsoft Windows 2000 不包含 Sccbase.dll 文件。如果您运行的是某个版本的 Windows 2000,请省略此 Sccbase.dll 文件。
3. 重新启动计算机。
4. 单击“开始”,单击“运行”,在“打开”框中键入 cmd,然后单击“确定”。
5. 在命令提示符下,键入以下命令,并在键入每行命令后按 Enter:
regsvr32 softpub.dll
regsvr32 wintrust.dll
regsvr32 initpki.dll
regsvr32 dssenh.dll
regsvr32 rsaenh.dll
regsvr32 gpkcsp.dll
regsvr32 sccbase.dll
regsvr32 slbcsp.dll
regsvr32 mssip32.dll
regsvr32 cryptdlg.dll
exit
注意:得到提示时单击“确定”。注意:Microsoft Windows 2000 不包含 Sccbase.dll 文件。如果您运行的是某个版本的 Windows 2000,请省略此 Sccbase.dll 文件。
方法 5:删除 %Windir% 及其子文件夹的隐藏属性
1. 单击“开始”,单击“运行”,在“打开”框中键入 cmd,然后单击“确定”。
2. 在命令提示符处键入以下命令,并在键入每行后按 Enter:
attrib -s -h %windir%
attrib -s -h %windir%\system32
attrib -s -h %windir%\system32\catroot2
exit 回到顶端 方法 6:将非驱动程序签名策略设置为默认继续
如果您运行的是某个版本的 Windows 2000,请将“未签名的非驱动程序安装操作”组策略设置配置为“默认继续”。该组策略设置位于组策略 MMC 管理单元中的“计算机配置”、“Windows 设置”、“安全设置”、“本地策略”和“安全选项”下。如果您运行的是 Windows XP 或 更高版本的 Windows,则系统将不再支持此组策略设置。在这种情况下,请按照下列步骤操作以解决此问题: 1. 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
2. 在注册表中找到并单击下面的项:
HKEY_LOCAL_MACHINE\Software\Microsoft\Non-Driver Signing
3. 右键单击“Policy”二进制值,然后单击“修改”。
4. 此数值数据将显示为下面的格式:
0000 02
按 Delete 删除当前值(在本例中为 02),然后键入 0(当前值现在将显示为 00)。
5. 单击“确定”,然后退出注册表编辑器。

❸ 反编译修改dll文件后重新.net重新生成dll文件

反编译之前要先检查文件是否被混淆加密了,如果没有那就要恭喜你了。
使用reflector反编译dll源文件一定要安装FileGenerator的插件,安装好后就可以然后直接生成vs2005的工程了,然后用vs2005打开工程,修改反编译代码中异常的代码,加入编译环境所需的dll动态库,编译即可。
---------------------------------------------------------------------------------------------------------------
举例来说:
1、比如inforeader.get_item("name").ToString(),其实应该是inforeader.["name"].ToString(),没办法,手工改吧
2、还有,他还会报方法参数问题的错误,比如aa.Compare("helloworld","d",5),在5的未知显示参数错误,原来是本身这个位置的参数是一个枚举类型,反编译不知什么原因变成了第五个,于是改成枚举StringComparison.OrdinalIgnoreCase
3、。。。。。。

------------------------------
如有需要可与本人联系。

❹ 为什么将dll的名字改了以后dll就不能用了

本来应该是没什么问题的,但下载下来后我将dll的名字保存的与原dll的名字不一样,所以在使用时调用dll中的方法时就一直出错。当时百思不得其解,一直以为是dll中的代码写的有问题。仔细检查后发现dll一点问题都没有。当时查看了dll的属性后发现其原名字与现在的名字不一样,于是试着将其重命名后调用一切正常。然后在网上查了以后发现问题的所在。"原来那个dll名不是简单的一个名字,不是想文件与文件夹名一样,而是在dll类里面有用到的,不能随便改。如果想改,那么你就从新编译成dll前改成你想要的名字,然后在编译"网上原话,具体可以参看原网页:

❺ 如何把dll文件反编译修改之后的文件编译成dll

你在你的solution中新建一个工程,然后把a.cs,b.cs,c.cs添加到这个工程里面(我建议你新建类,然后把类的代码过去,这样即使命名空间不同也不会造成混乱)
然后再你引用的工程里addreference->project->你新建的这个工程,就可以调用了.
这样如果你需要修改的话直接在ide里修改,可以实时看到效果

❻ C# dll编译问题

这个只有三楼说对了!

事实上我们在引用时自己开发的dll时存在两种引用方式:

  1. 引用时选择的是项目(dll项目也在项目资源管理器中),这里引用最直接,原则上是使用这种引用的方式。

  2. 引用时选择的是文件(直接引用了文件夹中指定的dll),这里引用其实一般用于不一个项目资源管理器时的使用(因为这个dll的源码你无法拿到,或者为了不允许你更改,要求你引用文件而不是项目)

当然,如果条件允许,引用前可以在资源管理器先添加已存在的项目(当然是你要引用的那个项目),然后按第一种引用方式引用!

两种引用方式有一定的区别:

引用项目其实是在项目资源管理器中形成一个依赖关系,这个可以在项目管理管理器上右面查看项目依赖关系(不是在项目上右击,不是在项目上右击,不是在项目上右击,重要的事说三遍,因为很多人连项目与项目资源管理器都没分清!)正是因为有这个项目依赖的关系,所以IDE在编译时会按照依赖关系进行生成——也就是说被引用项目要比引用项目先生成!当然了,我见过一些“牛X"程序员把自己项目中乱写一通,最后形成了一个环状引用,还告诉我说找到了vs的bug,项目生成失败,而且无解!汗了~~自己原理不清楚,你以为臭虫那么好捉?

之所以这么说,就是因为其实你每次生成时,由于依赖关系的原因,引用的永远是最后的dll,不管是有人解释为“所有项目重新生成了,所以能引用到最新的”,还是解释为“直接引用了被引用项目bin中的文件”,还是解释为“通知了依赖项项目更新引用文件”等等不影响你使用的,而且在被引用生成之后,其他的引用都是新的。

第二种其实是引用了一个副本文件!不管你在不在同一项目资源,只要是直接引用文件的这种,都实都是将文件到了object文件夹中,而这个文件夹的文件在生成时会生成到bin文件夹中!也有人理解为到了bin文件夹中,但是他们搞不清楚——类似于以上文件明明引用源中的dll已经更新,而bin中的怎么还是旧文件呢?其实文件引用方式是引用到项目中一个中间文件中了,这个文件并没有在vs上显示(文件组中存在,有些还是隐藏的),众所周知的是bin只有在编译的时候才会生成,所以很多人会以为源dll文件也是此时生成的,事实上根本上不是!而是你在引用时已经将文件到了隐藏的目录中!在生成时再将其到bin中!所以即引源文件夹的内容已经改变,这个文件也不会再发生错误了!如果这样理解了,那么楼主的问题就已经知道原因了!

如果是项目引用,不用管的,引用的永远是最新的dll!

如果是文件引用,在dll更新时,应该在项目中引用文件夹中找到文件,然后右击“刷新引用”即可!这个方式相当于再次从将源dll 到中间object目录中。当然,开发过程中使用的就是新的dll了!另一种方式更绝,就是删除引用文件,重新引用(这绝对可行,但怎么也不那么优雅,人家原因的dll位置又没换)!

如果让我根据楼主的描述,我猜你使用的也是文件引用方式!那么知道文件引用方式,怎么解决就不成问题了!

你一定奇怪,为什么还要有文件引用方式?我想引用哪个直接把那个项目添加到我的项目资源管理器中不就行了?就算两台机器上,一个dll也是,把整个的项目拷贝过来不也行吗(大多时候我们使用TFS时,可以直接将项目拉回来的)?为什么会存在这样文件引用呢?它的作用就为了解决我们拿不到源码无法添加到项目中而出现的引用方式吗?答案是肯定的,但只是一部分原因!我来告诉你另一部分的原因!

Fake!Fake!Fake! 如果你懂这个单词,那么一定知道我的意思,如果不懂我来告诉你吧,这个单词就是“假的”!如果dll开发是一个任务(develop task), 而引用该dll的应用软件或中间件也是一个任务(delevop task),在正常的开发关系上来说,dll开发任务是应用开发的前驱,也就是正常的需要dll开发完成后才进行应用软件的开发(很多人的模式都是这样的),但现在情况是,dll开发需要5天,而应用开发也需要5天,产品却要7天内交付!那么是说两个任务要同时进行develop! 怎么办?怎么办?应用开发程序员却说你没dll让我怎么引用——听起来很有道理,不少管理者向dll开发team压压力,你们在两天内加班完成,我给你们放5天假!事实上两天内加班完成的dll其实质量可想而知!为什么不Fake呢!

Fake的意思就是应用开发人员引用一个“假的”dll! 标记为Fake的引用文件非常好玩——你可以在开发中试一下!它只需要在成品是组合一下就可以了(因为引用文件会使用其文件的版本/哈希值/空间等相关校验,而这个即更是更新后的文件也存在有些值不一样——如publicToken值,而引用Fake则就是解决了这个问题)!

所以说文件引用的方式同时还是打破任务前驱方式的一种行为,有利于扁开化安排开发时间!所以文件引用也存在其实必要的因素!

  1. 无源码时的引用(只提供了dll没提供源码),比如某些SDK等,一般用于稳定的成熟的,基本上更新不大的dll文件使用。

  2. 分支版本控制(由于开发过程中存在诸多的分支版本)应用程序员无法分清楚或不需分清楚分支版本时,引用源码则会对应用开发造成一定的混淆,当然在dll开发立场上他们当然知道该用哪个版本的源码,对于应用开发的team,没有必要增加他们学习时间。各版本的区别他们并不知道细节。

  3. Fake引用!并行开发成为可能性(虽然可以引用另一个团队的dll源码,如果你愿意每次生成时都更新他们的源码——他们有可能同时在改动,还要以无比的关爱来忍受他们的千奇百怪的bug的话,我同意,当然还得忍受这种原因导致你自己的进度缓慢)。

也正是因为如此,所以文件引用可能会出现的现象要知道怎么处理。

❼ 如何更新dll文件库

用网络电脑专家dll专修工具修复系统丢失的dll文件。

1、网络搜索输入:dll专修工具,在打开的网页目录中选择:dll修复工具

下载_网络电脑专家,点击:打开工具;

可参考:_网络经验

《xxxxxx.dll文件丢失的解决方法》

http://jingyan..com/article/148a1921ba6fc14d71c3b1ab.html

❽ 重装SDDynDll.dll后为什么进游戏后还是依然说SDDynDll.dll未更新..

重新安装系统

❾ 依赖的dll更新后什么情况下需要重新编译主程序

有的网站后台代码既有aspx又有CS文件,而且更改CS文件后不需要重新编译,网站直接就改变了,是有好多这样的网站。 主要的原因是:网站编译,可以是整站编译,也可以不编译的。把所有源代码,放在相应目录,也是可以正常运行的,

❿ "修改"DLL文件后无法运行

-6E和6E你没感觉缺了什么 ?再说了动态链接库文件你随便就给改了,你以为这是注册表啊,动了还能恢复一下,如果你能记住你修改的是哪个动态链接库文件,去DLL资源站上重新下载个在DOS下复制进去吧,否则你提搞不了的,只能重装。

阅读全文

与dll修改后编译未更新相关的资料

热点内容
车机怎么设置开机logo只有安卓 浏览:237
cssjs压缩工具下载 浏览:370
安卓手机nfc怎么录入门禁卡 浏览:643
ios算法和数据结构 浏览:697
天翼云服务器客服 浏览:794
程序员16k测试 浏览:541
新人程序员如何定计划 浏览:505
毕业设计单片机仿真 浏览:835
阿里ai云服务器 浏览:437
小程序云服务器可以绑个人账户吗 浏览:730
王者荣耀体验服ios怎么登陆安卓的 浏览:288
客户想要的与程序员理解的 浏览:670
硅谷一普通程序员的一天 浏览:459
算法实现两个集合合并 浏览:78
班长命令什么意思 浏览:142
51单片机c语音 浏览:734
悦翔v3压缩比 浏览:717
oppo怎样修改手机里的文件夹名称 浏览:223
PHP图片上传替换 浏览:142
androidtv桌面 浏览:812