无法在 Windows CE 6 中重新加载 ActiveX 控件

Unable to reload ActiveX control in Windows CE 6

我正在开发针对 Windows CE 6 的 ActiveX 控件(在 Motorola Workabout Pro 4 上,如果指定有帮助)。我有第一阶段的工作,在某种意义上我可以在 Visual Studio 中编译,并使用一个简单的 CAB 文件进行部署。

但是,我发现我是否可以更新设备上的控件非常碰运气。如果我执行干净重建(确保事先删除所有中间文件)并重新部署 CAB 文件,我发现任何更改都没有反映在部署的代码中:输出未更改,无论是在设备上的 IE 中,还是在通过 Visual Studio 2008 进行连接和调试。其次,我在调试器中添加的任何断点都不再命中。

如果我手动替换dll文件,这仍然没有效果。更奇怪的是,如果我完全删除 dll!

,控件 still 会继续工作

我在 WinCE 和 ActiveX 开发方面有点初学者,所以任何关于我在这里遗漏的提示都将不胜感激!

在这种情况下,我的问题是我未能将 dll 正确注册到 COM

我最简单的解决方案是更改 CAB 文件,以便 dll 自行注册。在我的例子中,这是通过为 Visual Studio 中的 dll 更改 CAB 文件属性中的参数来完成的。这导致 <parm name="SelfRegister" /> 被添加到 CAB _setup.xml 文件中:

...
<characteristic type="%CE2%" translation="install">
  <characteristic type="MakeDir" /> 
  <characteristic type="output.dll" translation="install">
    <characteristic type="Extract">
      <parm name="Source" value="OUPUT~1.002" /> 
      <parm name="SelfRegister" />
    </characteristic>
  </characteristic>
</characteristic>
...