通过 VS ClickOnce 进行 WIA 互操作部署
我有一个应用程序,允许我在我的开发 PC 上扫描图像,并且运行成功。它使用 Microsoft Windows 图像采集 COM ActiveX dll。我在 Windows 7 64 位上运行 VS2008。
我在尝试使用 ClickOnce 部署 Interop dll 时遇到问题。该组件通过 VS 项目以正常方式引用(并且 copy local = true)。当我在 Windows XP 计算机上安装该应用程序时,收到一条错误消息,指出该库丢失(即未正确安装/注册)。查看 System32 目录后,发现 dll 不存在,因此必须通过我的应用程序部署它。
在网上查看并尝试各种解决方案后,我在这里尝试了微软的“免注册COM”方法: http://msdn.microsoft.com/en-us/library/ms165432%28VS.80%29.aspx
但是,将isolated属性更改为True会导致2 由于注册表中的重复条目而导致编译错误。手动整理出这些条目后,我再次使用所谓的隔离 COM 组件部署了我的应用程序,但是当我尝试扫描文档时,我现在收到此消息:
“无法在动态链接库 msvcrt 中找到过程入口点_ except_handler4_common .dll'
我觉得我在绕这个圈子。有人可以告诉我如何通过 ClickOnce 为从 XP 开始的所有 Windows 版本部署 WIA 互操作吗?
我们将非常感谢您的帮助。
谢谢
I have an application that allows me to scan images on my development PC which works successfully. It uses the Microsoft Windows Image Acquisition COM ActiveX dll. I am running VS2008 on Windows 7 64 bit.
I am having problems trying to deploy the Interop dll using ClickOnce. This component is referenced through the VS project in the normal way (and copy local = true). When I install the application on a Windows XP machine, I get an error saying that the library is missing (i.e. it wasn't installed / registered correctly). Having looked in the System32 directory, the dll is not there, so it has to be deployed via my app.
After looking on the web and trying various solutions, I then tried Microsoft's 'Registration-Free COM' method here: http://msdn.microsoft.com/en-us/library/ms165432%28VS.80%29.aspx
However, changing the Isolated property to True then caused 2 compilation errors due to duplicate entries in the registry. Having sorted out these entries out manually, I then deployed my app again with the supposedly isolated COM component, but when I try to scan a document I now get this message:
'The procedure entry point_except_handler4_common could not be located in the dynamic link library msvcrt.dll'
I feel like I'm going round in circles with this one. Can someone please enlighten me on how to deploy the WIA interop via ClickOnce for all versions of Windows from XP onwards?
Your help will be greatly appreciated.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不要将Win7机器上的系统DLL复制到XP机器上,那样是行不通的。如果您将该文件命名为 wiaut.dll(WIA 自动化提供程序),那就更容易了。它可能只是没有安装在 XP 计算机上。
要求客户端安装此下载到机器上。您不需要免注册 COM,这些是系统组件。
Don't copy system DLLs from your Win7 machine to the XP machine, that can't work. It would have been easier if you named the file, I would guess at wiaaut.dll, the WIA Automation provider. It probably just isn't installed on the XP machine.
Ask the client to install this download on the machine. You don't need reg-free COM, these are system components.