Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何交换COM dll_C#_.net_Delphi_Dll - Fatal编程技术网

C# 如何交换COM dll

C# 如何交换COM dll,c#,.net,delphi,dll,C#,.net,Delphi,Dll,我有一个用Delphi编写的Windows服务,它是一个dll,也是用Delphi编写的。此dll使用.Net dll处理通信 所有这些都比我在公司的时间要早,而且没有任何信息来源。 .Net dll包含指向web服务的url,该url需要更改。我已反编译了.Net dll,更改了品牌并重新编译,但将旧文件替换为新文件会导致错误 'OLE错误8013100' 我花了很多时间在谷歌上搜索/研究这个错误,但由于我没有Delphi部分的源代码,我找到的答案没有任何用处 我知道的事情: •为了证明反编译

我有一个用Delphi编写的Windows服务,它是一个dll,也是用Delphi编写的。此dll使用.Net dll处理通信

所有这些都比我在公司的时间要早,而且没有任何信息来源。 .Net dll包含指向web服务的url,该url需要更改。我已反编译了.Net dll,更改了品牌并重新编译,但将旧文件替换为新文件会导致错误

'OLE错误8013100'

我花了很多时间在谷歌上搜索/研究这个错误,但由于我没有Delphi部分的源代码,我找到的答案没有任何用处

我知道的事情:

•为了证明反编译/重新编译过程,我使用了原始的dll并将其用作测试。一旦重新编译,它的功能就完美了

•在“修改的”dll中唯一更改的是web服务的URL

•我在使用该服务时对其运行了Process Monitor,并在注册表(CLSID)中标识了几个引用

•我已使用Regasm生成注册表“合并”文件,并应用了该文件。据我所知,所有旧的引用都被替换了,但现在我的错误已更改为“类未注册”

•使用这些更改重新运行process monitor表明服务仍在尝试获取原始注册表项

•我已在注册表中查找此条目(673DED65-BE57-36AF-AE8F-5BD418F1596E),但未发现任何内容。我还让代理Ransack进行内容搜索,搜索了6个小时后没有结果

•我从存档版本的DLL中了解到,这些DLL已被多次调出,而实际服务从未被更改;因此,我看不出注册表项如何被编码到该程序中

•我已经检查了GAC,其中没有列出组件,即使是在工作版本上

•我曾尝试添加到GAC中,但出现了一个错误,即程序集没有强名称,因此我认为它从未在其中出现过


所以问题是,该服务如何仍然获得一个不存在的注册表项,并且据我所知,该注册表项在任何地方都不详细?我是否错过了某个重要步骤?

您得到的错误意味着:“定位程序集的清单定义与程序集引用不匹配”。GAC包含旧信息,但您替换了该文件,因此清单与该文件不再匹配。如果我的读数正确,GAC基本上位于\Windows\Assembly?我已经在那里查过了,但没有列出。我尝试添加新的dll,但出现了一个错误,即没有对其进行强命名。我已经编辑了上面的内容,将其包括在“我知道的事情”谢谢你什么是o.s.和架构?并尝试使用/codebase开关注册程序集。Windows Server 2003,32位。早上我会试试代码库开关,谢谢。好的,代码库开关不起作用,但它确实引导我走上了一条新的道路。我的问题是,原始DLL的名称很强,而这些信息还没有带到反编译版本中。我比较了各种存档版本,它们总是有相同的密钥和令牌,我的新版本不同。我没有原件。snk。。。我是否可以用sn工具提供的信息重新创建它,或者我现在看到的是一个没有希望的结果?