使用与客户端相同的.NET版本替换COM注册的.dll时,.NET客户端崩溃
我们有一个旧的C/C++ .dll是COM注册的.我们的客户拥有使用此.dll的本机和.NET客户端.
我们已经构建了一个新的.NET .dll来替换旧的.dll,它们的COM接口完全相同.我们希望在没有客户需要重新编译或对客户做任何事情的情况下更换旧的.dll. 对于本机客户端,只需取消注册旧的.dll并注册新的(使用regasm)即可.它也适用于某些.NET客户端.但是,在这些情况下,客户端和新的.dll都使用相同的.NET版本进行编译,它会引发下面的异常. 换句话说,这有效: .dll is .NET 3.5 -> client is .NET 4.0 .dll is .NET 4.0 -> client is .NET 3.5 .dll is any .NET -> Client is native 这会抛出以下内容: .dll is .NET 4.0 -> client is .NET 4.0 .dll is .NET 3.5 -> client is .NET 3.5
任何想法,将不胜感激.
尝试取消注册任何以前的版本,并检查该DLL是否与可执行文件位于同一文件夹中.还试着看看你从哪里加载dll.我认为你正在加载它manualy所以看看你引用错误的DLL的地址.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows – 禁用提示“单击继续以永久访问此文件夹”(例如,
- windows – 使用winrm连接到远程服务器,而不将服务器添加到
- windows-server-2012 – 无法在Server 2012上禁用密码到期
- winapi – Windows 7 Ribbon UI Win32 API代码
- windows – 上次知道的计算机登录
- windows – powershell:改变当前会话的文化
- href – Microsoft Lync – 使用来自网页的消息打开IM窗口
- windows – 重置本地证书吊销列表(CRL)手册
- 在Windows或Ubuntu上是否有类似IDLE的ruby编辑器?
- .net – 在Windows服务中使用计时器