我有一个在Win7上运行但在WinXp上运行的应用程序(是的,我们仍然有一些)
原因是dll:wiaaut.dll
Registering
使用dll
的{p> regsvr32
有效。但首选的方法是通过代码(减少手工劳动)
所以我们想加载&使用以下代码在load()
上注册程序集:
Dim asm As Assembly = Assembly.LoadFrom(System.Environment.CurrentDirectory & "\WIA\wiaaut.dll")
Dim regAsm As RegistrationServices = New RegistrationServices()
Dim bResult = regAsm.RegisterAssembly(asm, AssemblyRegistrationFlags.SetCodeBase)
但是在第一行我收到错误:The module was expeted to contain assembly manifest
我尝试用其他类似的问题解决它:
SO Question 1不一样的问题
SO Question 3没有实际解决方案
SO QUestion 4没有答案
......还有更多......
那么对你们所有的人来说,这是我的问题:
答案 0 :(得分:2)
这是不可能的,wiaaut.dll是一个用C ++编写的非托管COM服务器。只能使用Assembly.Load / From()加载.NET程序集并像这样注册。像这样的COM服务器需要通过DllRegisterServer()入口点注册,通常由Regsvr32.exe调用
请将其留给机器所有者来处理,WIA需要在自动化界面之外正确注册。运行其安装程序是一项艰难的要求。 WIA第2版首次在Vista上推出,后端移植到XP。微软有一个下载可用,我注意到几个月前它已经丢失了。这可能与终止XP支持有关。没有未来,XP已经完成并且结束了。在superuser.com上询问此安装程序可能的迷你副本,超出了Microsoft的覆盖范围。如果遇到麻烦,那么你就无法给微软打电话,这是另一个不能解决问题的原因。