Зарегистрируйте x64 dll, используя пакет x32

Я хочу создать единый MSI для систем x64 и x32. MSI содержит две библиотеки DLL, одна из которых установлена ​​только в системах x64 (я добавил VersionNT64 условие для этого), DLL устанавливается, но не регистрируется, однако я извлек COM-данные для файла. Я думаю, что это из-за того, что пакет х32. У меня вопрос: можно ли зарегистрировать x64 dll с помощью пакета x32 msi?

Я пытался использовать скрипт установки, но он не работал:

#include "ifx.h"

export prototype register64BitPropertyHandler(HWND)  ;
export prototype unregister64BitPropertyHandler(HWND)  ;

#define REGSVR64            "\""+WINSYSDIR64^"REGSVR32.EXE"+"\""
#define REGSVR64RegParam    "/s \""+INSTALLDIR^"x64"^"IADotNetProfiler_x64.dll"+"\""
#define REGSVR64UnRegParam  "/u /s" + " \"" + INSTALLDIR^"x64"^"IADotNetProfiler_x64.dll"+"\""
function register64BitPropertyHandler(hInstall)
begin
    Disable (WOW64FSREDIRECTION);
    LaunchAppAndWait( REGSVR64, REGSVR64RegParam, NOWAIT );
    Enable (WOW64FSREDIRECTION);
end;
function unregister64BitPropertyHandler(hInstall)
begin
    Disable (WOW64FSREDIRECTION);
    LaunchAppAndWait( REGSVR64, REGSVR64UnRegParam, NOWAIT );
    Enable (WOW64FSREDIRECTION);
end;

1 ответ

Вы не можете сделать ни одного MSI для этого:

http://blogs.msdn.com/b/heaths/archive/2008/01/15/different-packages-are-required-for-different-processor-architectures.aspx

и это, 32-битные MSI могут содержать только 32-битные компоненты:

http://msdn.microsoft.com/en-us/library/aa367451(v=vs.85).aspx

так что вряд ли вы сможете заставить его работать, и даже если вы это сделаете, это может не поддерживаться. Обратите внимание, что поскольку это не то, что вы должны делать, у вас очень мало (если вообще есть) знаний о том, как это сделать или действительно ли это можно сделать.

Другие вопросы по тегам