Windows mobile 在Windows Mobile中更新CESelfRegistered DLL

Windows mobile 在Windows Mobile中更新CESelfRegistered DLL,windows-mobile,dllregistration,Windows Mobile,Dllregistration,我需要更新使用自注册DLL(通过CESelfRegistered注册)的应用程序。在注册过程中,DLL会将将来将要使用的一些路径写入注册表 现在的问题是,在我的新DLL中,存储路径不同。由于DLL在设备内存中处于活动状态,因此在更新过程中,在注册过程中会调用旧的DLL文件get。所以在更新完成并且设备重新启动之后,新的DLL仍然读取旧的设置 避免这种行为的正确步骤是什么?要更新使用DLL的正在运行的应用程序,您必须编写一个安装程序,终止或终止正在运行的exe,卸载包含DLL的exe,然后安装新的

我需要更新使用自注册DLL(通过
CESelfRegistered
注册)的应用程序。在注册过程中,DLL会将将来将要使用的一些路径写入注册表

现在的问题是,在我的新DLL中,存储路径不同。由于DLL在设备内存中处于活动状态,因此在更新过程中,在注册过程中会调用旧的DLL文件get。所以在更新完成并且设备重新启动之后,新的DLL仍然读取旧的设置


避免这种行为的正确步骤是什么?

要更新使用DLL的正在运行的应用程序,您必须编写一个安装程序,终止或终止正在运行的exe,卸载包含DLL的exe,然后安装新的exe和DLL

例如,您可以编写一个cab文件setup.dll,该文件将停止/终止exe并在install_init中注销dll。可能需要添加代码来删除旧的注册表项。CE Setup DLL是在CAB安装过程中,在安装和卸载初始化之前和之后运行代码的选项

您也可以在执行这些exe和dll替换(包括exe终止等)的应用程序中编写代码。然后在启动过程中包含此更新程序exe并运行一次

如果尚未安装应用程序,则无法依靠从ce_setup.dll内部启动该应用程序


有关ce_setup.dll的说明,请参阅。如果将新DLL复制到两个位置(删除或将原始DLL重命名为其他内容),然后注册新DLL,会发生什么情况?旧DLL将在安装过程开始时与旧版本的“我的应用”一起卸载。但旧注册的DLL仍保留在内存中。澄清-中的新应用已安装到不同的位置(因为我们公司的名称已更改,因此新路径不能包含旧名称)。