【发布时间】:2014-07-17 11:08:49
【问题描述】:
我有一个在 Win7 上运行但不在 WinXp 上运行的应用程序(是的,我们还有一些)
原因是dll:wiaaut.dll
Registering dll 使用 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不是同一个问题
- 我的应用程序的目标框架是 4.0(所以没有问题)
- 将我的目标配置更改为 x86(仍然存在问题),或任何其他相关配置
SO Question 3没有实际解决方案
SO QUestion 4没有答案
...还有更多...
所以,对于你们那里的白痴,这是我的问题:
- 我怎样才能避免异常以便代码正常工作。
- 或者有没有其他方法可以在当前机器上注册一个dll(使用代码)
【问题讨论】:
-
来自MSDN,引用“使用 WIA 自动化层 API 的应用程序需要 Windows Vista 或更高版本。不支持早期版本的 Windows。”对不起!
-
奇怪,虽然我手动注册 dll 让它工作了....
-
是的.. 很可能您可以在 Windows 中摆脱它,但要从代码中做到这一点,现在需要 .manifest 文件/嵌入之类的东西。不过我会继续寻找……自从我弄乱 XP 以来已经有一段时间了!
标签: .net vb.net dll .net-assembly