Зарегистрируйте 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 для этого:
и это, 32-битные MSI могут содержать только 32-битные компоненты:
http://msdn.microsoft.com/en-us/library/aa367451(v=vs.85).aspx
так что вряд ли вы сможете заставить его работать, и даже если вы это сделаете, это может не поддерживаться. Обратите внимание, что поскольку это не то, что вы должны делать, у вас очень мало (если вообще есть) знаний о том, как это сделать или действительно ли это можно сделать.