.net Assembly.LoadFrom():模块已被导出以包含程序集清单
我有一个在Win7上运行但不在WinXp上运行的应用程序(是的,我们还有一些) 原因是dll:.net Assembly.LoadFrom():模块已被导出以包含程序集清单,.net,vb.net,dll,.net-assembly,.net,Vb.net,Dll,.net Assembly,我有一个在Win7上运行但不在WinXp上运行的应用程序(是的,我们还有一些) 原因是dll:wiaaut.dll 使用regsvr32注册dll有效。但首选的方法是通过代码(减少人工) 因此,我们考虑使用以下代码在load()上加载并注册程序集: Dim asm As Assembly = Assembly.LoadFrom(System.Environment.CurrentDirectory & "\WIA\wiaaut.dll") Dim regAs
wiaaut.dll
使用regsvr32
注册dll
有效。但首选的方法是通过代码(减少人工)
因此,我们考虑使用以下代码在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)
然而在第一行我得到了错误:模块被导出以包含程序集清单
我试着用其他类似的问题来解决这个问题:
其实不是同一个问题
- 我的应用程序的目标框架是4.0(所以没有问题)
- 将我的目标配置更改为x86(仍然存在问题),或任何其他配置
没有实际的解决办法
没有答案
。。。还有更多
所以,对于那边的所有布里亚人,我的问题是:
如何避免异常,使代码正常工作
或者是否有其他方法在当前计算机上注册dll(使用代码)
<>这是不可能的,WiAuto.dl是用C++编写的非托管COM服务器。只有.NET程序集可以使用Assembly.Load/From()加载并按如下方式注册。像这样的COM服务器需要由其DllRegisterServer()入口点注册,通常由Regsvr32.exe调用
请将此问题留给机器所有者处理,WIA需要正确注册,而不仅仅是自动接口。运行其安装程序是一项艰难的要求。WIA版本2首先在Vista上可用,后来被移植到XP。微软有一个可供下载的,我注意到几个月前它已经丢失了。这可能与XP支持被终止有关。这是没有前途的,XP已经结束了。请访问superuser.com,以获取Microsoft无法获取的本安装程序的可能零散副本。如果出现问题,您就不能打电话给Microsoft,这是另一个不将此作为您的问题的原因。From,引用“使用WIA自动化层API的应用程序需要Windows Vista或更高版本。不支持Windows的早期版本”。抱歉!奇怪的是,我手动注册了dll…是的。。很有可能您可以在Windows中解决这个问题,但要从代码中解决这个问题,现在需要.manifest文件/嵌入之类的东西。不过我会继续找的。。。我已经有一段时间没有玩XP了!正如我所担心的。。。。。为什么我们的IT基础架构团队远远落后于计划。。。。谢谢你提供的信息!