2010-03-26 88 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

相關問題