我们有一个在 Visual Basic 6.0 上运行的项目,我们尝试在桌面桥中迁移。当我们使用 DAC 命令提示符时,一切正常。转换后的应用程序按原样转换,在任何测试计算机上都可以正常工作。
我们甚至设法添加了一个 COM Interop .NET 程序集,以便能够使用 UWP 功能(如 toast)
在任何开发机器上一切正常,但在测试机器上却不行。好吧,从 Visual basic 加载 COM Interop .Net 程序集似乎不起作用。
测试机和开发机的主要区别:
- 在开发机器上,Visual Studio 2017将 dll 注册为 COM 互操作(使用
regasm
, Under the Hood) - 在测试机器上,我们首先制作一个.msi安装文件(使用Visual Studio 6 安装程序,是的 OLD 一个 interdev 风格的 IDE;),然后我们将 DAC 命令行应用到这个新的 .msi
因此,看来我们必须在目标测试机器上手动注册此程序集,使用regasm
... 因为Visual Studio 6 安装程序不知道如何注册互操作程序集(使用regasm
)
我们如何应对这种情况?
作为细节,我们有一些简单的东西:
- MyApplication.exe (vb6)
- MyWrappers.dll(和.tlb)(为 COM 互操作标记的 .net C# 程序集并引用 UWP SDK 以便能够启动通知)
再一次,“安装”不会崩溃。仅调用 COM 互操作程序集以启动 toast 通知。
实际上,如果 DAC 没有为 COM 互操作打包此程序集,则此错误似乎很明显,这是有道理的。
任何想法 ?:)
塞巴斯蒂安