2010-03-26 70 views
3

我们有一个使用.Net COM程序集的Powerbuilder 10应用程序。我们试图在PB应用程序中嵌入清单(以在不注册的情况下调用COM程序集)。合并的清单文件为.Net COM程序集上的依赖添加了部分。我们尝试使用各种工具注入新的清单,结果不同 - 使用GenMan32将应用程序从6MB截断为45KB。 - 使用ResourceTuner,文件大小看起来不错,但尝试启动应用程序会导致“致命的磁盘错误”。从Powerbuilder应用程序调用.Net COM程序集(无需注册)

对于未经注册的调用.Net ComEnabled程序集的任何建议?

回答

1

这比重定向更重要。有一点你需要注意的是,PowerBuilder生成的可执行文件不符合Windows可执行文件的标准。本质上,它们是加载PowerBuilder虚拟机的引导程序,以及一组类定义(对象)。您提到的案例不是我听说过的第一个修改可执行文件的实用程序无法在PowerBuilder可执行文件上工作的案例。

至于对其他方向的积极贡献,我并不知道提供足够的建议。如果是我,我会尝试注册COM对象,如果ConnectToNewObject()失败,但我不知道如果可能或如果该路线是死胡同。

祝你好运,

特里。

1

你有没有试过它与外部清单,并确保工程?如果外部清单不起作用,则清单信息不正确。

一旦你有了一个有效的外部清单,你可以试用.Net SDK中的Manifest Tool(MT.EXE)。它适用于真正的EXE文件。正如Terry指出的那样,PB生成的可执行文件包含额外的信息,那些操纵EXE的工具需要遵守,否则它们会破坏它。

http://blogs.msdn.com/patricka/archive/2009/12/09/answers-to-several-application-manifest-mysteries-and-questions.aspx