HavaCuppaJoe
06-09-2006, 02:17 PM
I have a custom action that calls a function in a standard DLL that is installed with the product. I'm moving the DLL to %WINDIR%\System32 and running it from there.
The CA runs correctly in XP, but on VISTA Beta2 the CA always fails with:
InstallShield DLL Custom Action
! Unknown source "mydll.dll".
The relevent portion of the log file looks like this:
MSI (s) (48:28) [01:39:31:929]: Executing op: FileCopy(SourceName=mydrv~1.DLL|mydll.dll,SourceCabKey=mydll.dll,DestName=mydll.dll,Attributes=16384,FileSize=57344,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,,,InstallMode=58982400,HashOptions=0,HashPart1=-168601052,HashPart2=-459143132,HashPart3=2044559537,HashPart4=1005687676,,)
MSI (s) (48:28) [01:39:32:038]: File: C:\Windows\system32\mydll.dll; To be installed; Won't patch; No existing file
MSI (s) (48:28) [01:39:32:038]: Source for file 'mydll.dll' is compressed
InstallFiles: File: mydll.dll, Directory: C:\Windows\system32\, Size: 57344
MSI (s) (48:28) [01:39:32:038]: SOFTWARE RESTRICTION POLICY: Verifying object --> 'C:\Windows\Installer\38a30.msi' against software restriction policy
MSI (s) (48:28) [01:39:32:038]: Note: 1: 2262 2: DigitalSignature 3: -2147287038
MSI (s) (48:28) [01:39:32:038]: SOFTWARE RESTRICTION POLICY: C:\Windows\Installer\38a30.msi is not digitally signed
MSI (s) (48:28) [01:39:32:038]: SOFTWARE RESTRICTION POLICY: C:\Windows\Installer\38a30.msi is permitted to run at the 'unrestricted' authorization level.
MSI (s) (48:28) [01:39:32:038]: Note: 1: 2318 2: C:\Windows\system32\mydll.dll
MSI (s) (48:28) [01:39:32:054]: Note: 1: 2360
MSI (s) (48:28) [01:39:32:054]: Executing op: SetTargetFolder(Folder=C:\Windows\system32\drivers\)
MSI (s) (48:28) [01:39:32:054]: Executing op: SetSourceFolder(Folder=1\System32\drivers\)
MSI (s) (48:28) [01:39:32:054]: Executing op: FileCopy(SourceName=mydrv.sys,SourceCabKey=mydrv.sys,DestName=mydrv.sys,Attributes=16384,FileSize=18816,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,Version=1.0.0.0,Language=1033,InstallMode=58982400,,,,,,,)
MSI (s) (48:28) [01:39:32:195]: File: C:\Windows\system32\drivers\mydrv.sys; To be installed; Won't patch; No existing file
MSI (s) (48:28) [01:39:32:195]: Source for file 'mydrv.sys' is compressed
InstallFiles: File: mydrv.sys, Directory: C:\Windows\system32\drivers\, Size: 18816
MSI (s) (48:28) [01:39:32:226]: Note: 1: 2318 2: C:\Windows\system32\drivers\mydrv.sys
MSI (s) (48:28) [01:39:32:242]: Executing op: CacheSizeFlush(,)
MSI (s) (48:28) [01:39:32:242]: Executing op: ActionStart(Name=Install_My_Service,,)
Action 1:39:32: Install_My_Service.
MSI (s) (48:28) [01:39:32:257]: Executing op: CustomActionSchedule(Action=Install_My_Service,ActionType=3073,Source=BinaryData,Target=DLL3,CustomActionData=C:\Windows\system32\drivers\mydrv.sys)
MSI (s) (48:28) [01:39:32:351]: Creating MSIHANDLE (12) of type 790536 for thread 2088
MSI (s) (48:EC) [01:39:32:398]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI9D1F.tmp, Entrypoint: DLL3
MSI (s) (48:4C) [01:39:32:398]: Generating random cookie.
MSI (s) (48:4C) [01:39:32:413]: Created Custom Action Server with PID 3068 (0xBFC).
MSI (s) (48:B8) [01:39:33:195]: Running as a service.
MSI (s) (48:B8) [01:39:33:195]: Hello, I'm your 32bit Elevated custom action server.
MSI (s) (48:EC) [01:41:28:694]: Closing MSIHANDLE (12) of type 790536 for thread 2088
Action ended 1:41:28: InstallFinalize. Return value 3.
At this point the rollback procedure starts.
What is different about Vista that won't allow the CA to find the dll that I installed? It's calling the correct entry point in my DLLWrap.ini file and all of the arguments are correct. But it always terminates before it executes the call..
Thanks,
HavaCuppaJoe
The CA runs correctly in XP, but on VISTA Beta2 the CA always fails with:
InstallShield DLL Custom Action
! Unknown source "mydll.dll".
The relevent portion of the log file looks like this:
MSI (s) (48:28) [01:39:31:929]: Executing op: FileCopy(SourceName=mydrv~1.DLL|mydll.dll,SourceCabKey=mydll.dll,DestName=mydll.dll,Attributes=16384,FileSize=57344,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,,,InstallMode=58982400,HashOptions=0,HashPart1=-168601052,HashPart2=-459143132,HashPart3=2044559537,HashPart4=1005687676,,)
MSI (s) (48:28) [01:39:32:038]: File: C:\Windows\system32\mydll.dll; To be installed; Won't patch; No existing file
MSI (s) (48:28) [01:39:32:038]: Source for file 'mydll.dll' is compressed
InstallFiles: File: mydll.dll, Directory: C:\Windows\system32\, Size: 57344
MSI (s) (48:28) [01:39:32:038]: SOFTWARE RESTRICTION POLICY: Verifying object --> 'C:\Windows\Installer\38a30.msi' against software restriction policy
MSI (s) (48:28) [01:39:32:038]: Note: 1: 2262 2: DigitalSignature 3: -2147287038
MSI (s) (48:28) [01:39:32:038]: SOFTWARE RESTRICTION POLICY: C:\Windows\Installer\38a30.msi is not digitally signed
MSI (s) (48:28) [01:39:32:038]: SOFTWARE RESTRICTION POLICY: C:\Windows\Installer\38a30.msi is permitted to run at the 'unrestricted' authorization level.
MSI (s) (48:28) [01:39:32:038]: Note: 1: 2318 2: C:\Windows\system32\mydll.dll
MSI (s) (48:28) [01:39:32:054]: Note: 1: 2360
MSI (s) (48:28) [01:39:32:054]: Executing op: SetTargetFolder(Folder=C:\Windows\system32\drivers\)
MSI (s) (48:28) [01:39:32:054]: Executing op: SetSourceFolder(Folder=1\System32\drivers\)
MSI (s) (48:28) [01:39:32:054]: Executing op: FileCopy(SourceName=mydrv.sys,SourceCabKey=mydrv.sys,DestName=mydrv.sys,Attributes=16384,FileSize=18816,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,Version=1.0.0.0,Language=1033,InstallMode=58982400,,,,,,,)
MSI (s) (48:28) [01:39:32:195]: File: C:\Windows\system32\drivers\mydrv.sys; To be installed; Won't patch; No existing file
MSI (s) (48:28) [01:39:32:195]: Source for file 'mydrv.sys' is compressed
InstallFiles: File: mydrv.sys, Directory: C:\Windows\system32\drivers\, Size: 18816
MSI (s) (48:28) [01:39:32:226]: Note: 1: 2318 2: C:\Windows\system32\drivers\mydrv.sys
MSI (s) (48:28) [01:39:32:242]: Executing op: CacheSizeFlush(,)
MSI (s) (48:28) [01:39:32:242]: Executing op: ActionStart(Name=Install_My_Service,,)
Action 1:39:32: Install_My_Service.
MSI (s) (48:28) [01:39:32:257]: Executing op: CustomActionSchedule(Action=Install_My_Service,ActionType=3073,Source=BinaryData,Target=DLL3,CustomActionData=C:\Windows\system32\drivers\mydrv.sys)
MSI (s) (48:28) [01:39:32:351]: Creating MSIHANDLE (12) of type 790536 for thread 2088
MSI (s) (48:EC) [01:39:32:398]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI9D1F.tmp, Entrypoint: DLL3
MSI (s) (48:4C) [01:39:32:398]: Generating random cookie.
MSI (s) (48:4C) [01:39:32:413]: Created Custom Action Server with PID 3068 (0xBFC).
MSI (s) (48:B8) [01:39:33:195]: Running as a service.
MSI (s) (48:B8) [01:39:33:195]: Hello, I'm your 32bit Elevated custom action server.
MSI (s) (48:EC) [01:41:28:694]: Closing MSIHANDLE (12) of type 790536 for thread 2088
Action ended 1:41:28: InstallFinalize. Return value 3.
At this point the rollback procedure starts.
What is different about Vista that won't allow the CA to find the dll that I installed? It's calling the correct entry point in my DLLWrap.ini file and all of the arguments are correct. But it always terminates before it executes the call..
Thanks,
HavaCuppaJoe