COM对象问题。
我有三个视觉工作室项目V1,V2和V3。 我在Visual Studio 2015中,在WIndows 8和Windows 7平台上使用WPF / C#。 V2和V3导致DLL文件。
V1是一个WPF测试应用程序,它调用V2中的类
中的方法V2是一个类库,从中可以调用V3中类的方法
V3是一个类库
这一切都很好。即使我定义V2项目来生成COM对象。 Project.Propeerties.Application.Assembly信息:选中“使程序集COM-Visible” Project.Propeerties.Build。注册COM互操作检查 签名。签署程序集。签名
(V3项目未定义为COM对象)
当我将测试应用程序V1替换为另一个项目(未在WPF / C#中定义,但是另一种非托管语言,如PowerBuilder)时,我仍然可以调用那些专门在V2中的方法。
但是,如果V2中的方法调用V3中的方法,则程序崩溃。它找不到V3.DLL文件。
令人讨厌的是,它在Visual Studio,Powerbuilder及其调试器的开发环境中运行良好,但在仅存在.EXE和DLL文件的测试平台上却没有。
我正在使用“Regasm.exe”在测试环境中注册V2 com对象,这在开发环境中是不必要的,因为Visual Studio为我做了所有这些。
我查看了使用PATH变量播放的清单文件,将V3.DLL文件放在这里,没有任何乐趣。
是否必须将V3.DLL注册为COM对象?这不是我想要的,如果我们必须去那里可能会给我们带来麻烦。
约翰