Извикване на .Net COM сборка от приложението Powerbuilder (без регистрация)

Имаме приложение Powerbuilder 10, което използва .Net COM модули. Опитваме се да вградим манифеста в PB приложението (за извикване на COM асембли без регистрация). Обединеният манифестен файл има добавени секции за зависимости от .Net COM модулите. Имаме опити с различни инструменти за инжектиране на новия манифест с различни резултати - използването на GenMan32 за инжектиране съкращава приложението от 6MB на 45KB. - използвайки ResourceTuner, размерът на файла изглежда добре, но опитът за стартиране на приложение дава "Фатална грешка на диска".

Някакви предложения за извикано сглобяване на .Net ComEnabled от PB без регистрация?


person as.    schedule 26.03.2010    source източник


Отговори (2)


Опитахте ли го с външен манифест и се уверихте ли, че работи? Ако външен манифест не работи, тогава информацията в манифеста не е правилна.

След като имате валиден външен манифест, можете да опитате инструмента за манифест (MT.EXE) от .Net SDK. Работи добре с истински EXE файлове. Както обаче отбеляза Тери, генерираният от PB изпълним файл съдържа допълнителна информация, която инструментите, които манипулират EXE, трябва да зачитат или ще го разбият.

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

person Bruce Armstrong    schedule 29.03.2010

Това е по-скоро пренасочване, отколкото отговор. Едно нещо, което трябва да знаете е, че PowerBuilder произвежда изпълними файлове, които не следват стандартите за изпълними файлове на Windows. По същество те са рутинна програма за стартиране за зареждане на виртуалната машина PowerBuilder, плюс колекция от дефиниции на класове (обекти). Случаите, които споменахте, не са първите, за които чувам, че помощните програми, предназначени да модифицират изпълними файлове, не работят с изпълними файлове на PowerBuilder.

Що се отнася до положителен принос за това какви други насоки да следвам, всъщност не знам достатъчно, за да дам квалифициран съвет. Ако бях аз, бих се опитал да регистрирам COM обекта, ако ConnectToNewObject() се провали, но нямам представа дали това е възможно или този маршрут е задънена улица.

Късмет,

Тери.

person Terry    schedule 28.03.2010