无法在 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>
...
我正在开发针对 Windows CE 6 的 ActiveX 控件(在 Motorola Workabout Pro 4 上,如果指定有帮助)。我有第一阶段的工作,在某种意义上我可以在 Visual Studio 中编译,并使用一个简单的 CAB
文件进行部署。
但是,我发现我是否可以更新设备上的控件非常碰运气。如果我执行干净重建(确保事先删除所有中间文件)并重新部署 CAB 文件,我发现任何更改都没有反映在部署的代码中:输出未更改,无论是在设备上的 IE 中,还是在通过 Visual Studio 2008 进行连接和调试。其次,我在调试器中添加的任何断点都不再命中。
如果我手动替换dll
文件,这仍然没有效果。更奇怪的是,如果我完全删除 dll
!
我在 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>
...