Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Custom Action DLL doesn't get called on German OS


8 replies to this topic

RothmansUA

RothmansUA
  • Full Members
  • 24 posts

Posted 04 February 2010 - 15:28

Hi all,

I am experiencing very strange problem with an InstallShield Basic MSI installation.
The installation contains a DLL custom action that gets called in the UI sequence between CostInitialize and CostFinalize actions.

The custom action works well on 2 of my Windows XP PCs which have English OS versions and it simply doesn't get executed on 2 Windows XP and 1 Windows Vista machine which have German OS installed.

When the installation comes to the custom action call here is the exerpt from the "working" installation log:

QUOTE

MSI © (C8:64) [13:13:00:573]: Doing action: GetContributePath
Action 13:13:00: GetContributePath.
Action start 13:13:00: GetContributePath.
MSI © (C8:78) [13:13:00:588]: Invoking remote custom action. DLL: C:\DOCUME~1\SSSSSS~1\LOCALS~1\Temp\MSI3C1.tmp, Entrypoint: DLL3
MSI © (C8:28) [13:13:00:635]: PROPERTY CHANGE: Adding CONTRIBUTE_INSTALLED property. Its value is '1'.
MSI © (C8!28) [13:13:00:635]: PROPERTY CHANGE: Adding CONTRIBUTE_PATH property. Its value is 'C:\Program Files\Adobe\Adobe Contribute CS3'.
Action ended 13:13:00: GetContributePath. Return value 1.


And here is the same installation package on a German OS:

QUOTE

MSI © (D8:A0) [13:03:31:275]: Doing action: GetContributePath
Action 13:03:31: GetContributePath.
Action start 13:03:31: GetContributePath.
MSI © (D8:70) [13:03:31:297]: Invoking remote custom action. DLL: C:\Users\SSSSSS~1\AppData\Local\Temp\MSID301.tmp, Entrypoint: DLL3
Action ended 13:03:36: GetContributePath. Return value 1.


On the German PC right after
Action start 13:03:31: GetContributePath.
an InstallShield warning message box gets displayed:

Title: InstallShield DLL Custom Action
Text: Fie 'C:\Users\SSSSSS~1\AppData\Local\Temp\_is17CA.tmp can not be found. Make sure the file is on target system or installed already.

At this moment the mentioned file doesn't exist on the hard drive (also taking into account German folder translations).

I am pretty sure that the custom action doesn't get executed (you can also see in the log that the MSI properties do not get set, no output from DLL in my custom log file either).

I am building the installation package using English version of the InstallShield 2009 Professional.

I have found only a single link on internet with somehow similar problem:
http://community.fle...p?t-158588.html
Here, as I understand, the reason is a wrong version of the ISSetup.dll, which I assume is an InstallShield problem?

Has anybody seen such kind of error?
In which direction should I move now? I am pretty disappointed at the moment.

Thank you for any ideas.

Johannes John

Johannes John
  • Full Members
  • 223 posts

Posted 04 February 2010 - 16:09

Hello RothmansUA,

are you sure, that all variables, which lead to the setting of the CONTRIBUTE_INSTALLED property, have the same value on the german OS machines as on the english OS machines?

Regards
Johannes

RothmansUA

RothmansUA
  • Full Members
  • 24 posts

Posted 04 February 2010 - 16:45

QUOTE (Johannes John @ 2010-02-04 16:09)
Hello RothmansUA,

are you sure, that all variables, which lead to the setting of the CONTRIBUTE_INSTALLED property, have the same value on the german OS machines as on the english OS machines?

Regards
Johannes

Yes, pretty sure.
Actually the custom action and installation itself were working on both kinds of OSes earlier. Now I made a copy of the InstallShield project changed the product name only and have gotten this strange thing.

If the reason would be in the different results of DLL execution then it wouldn't explain the warning message shown.

May be the reason is that the InstallShield 2009 Professional English doesn't support generation of correct installation packages for OSes other than English?
Although, I am almost sure that the previous working versions of my installation projects were built with the same IS installation.

I am starting to think that the reason can really be in the Custom Action itself (like a crashing call to MsiSetProperty or whatever). But at the moment I cannot get a single line of log output from the first line of the custom action procedure on a German OS.

RothmansUA

RothmansUA
  • Full Members
  • 24 posts

Posted 05 February 2010 - 00:00

QUOTE (Johannes John @ 2010-02-04 16:09)
Hello RothmansUA,

are you sure, that all variables, which lead to the setting of the CONTRIBUTE_INSTALLED property, have the same value on the german OS machines as on the english OS machines?

Regards
Johannes

The environment and result of DLL execution doesn't really matter.

I see the error message popup about missing .tmp file on German OSes independently of the potential result of the custom action execution.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 05 February 2010 - 10:06

Please download Process Monitor from http://technet.micro...ls/default.aspx to see if the temp file is being created at all and why it disappears.

RothmansUA

RothmansUA
  • Full Members
  • 24 posts

Posted 05 February 2010 - 12:40

I have reproduced the issue on the English Vista PC. So it doesn't really look like language problem any more.

Here is an extract from the Process Monitor with filter on MsiExec.exe only:
QUOTE

12:11:25,5637394 MsiExec.exe 2172 CreateFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS Desired Access: Generic Read, Disposition: Create, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: None, AllocationSize: 0, OpenResult: Created
12:11:25,5655059 MsiExec.exe 2172 QueryStandardInformationFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS AllocationSize: 0, EndOfFile: 0, NumberOfLinks: 1, DeletePending: False, Directory: False
12:11:25,5655373 MsiExec.exe 2172 CloseFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS
12:11:25,5662283 MsiExec.exe 2172 CreateFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS Desired Access: Generic Write, Read Attributes, Disposition: OverwriteIf, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: None, AllocationSize: 0, OpenResult: Overwritten
12:11:25,5667860 MsiExec.exe 2172 WriteFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS Offset: 0, Length: 10.240, Priority: Normal
12:11:25,5672273 MsiExec.exe 2172 WriteFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp FAST IO DISALLOWED Offset: 10.240, Length: 10.240
12:11:25,5672459 MsiExec.exe 2172 WriteFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS Offset: 10.240, Length: 10.240, Priority: Normal
12:11:25,5675490 MsiExec.exe 2172 WriteFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS Offset: 20.480, Length: 10.240
12:11:25,5677722 MsiExec.exe 2172 WriteFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp FAST IO DISALLOWED Offset: 30.720, Length: 10.240
12:11:25,5677878 MsiExec.exe 2172 WriteFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS Offset: 30.720, Length: 10.240, Priority: Normal
12:11:25,5680636 MsiExec.exe 2172 WriteFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS Offset: 40.960, Length: 10.240
12:11:25,5682865 MsiExec.exe 2172 WriteFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS Offset: 51.200, Length: 2.048
12:11:25,5687004 MsiExec.exe 2172 CloseFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS
12:11:25,5790923 MsiExec.exe 2172 RegOpenKey HKLM\Software\InstallShield\10\DebugDLLCustomAction NAME NOT FOUND Desired Access: Read
12:11:25,5793212 MsiExec.exe 2172 CreateFile C:\Users\sssssssssssss\AppData\Local\Temp\is7BC4.tmp SUCCESS Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: R, ShareMode: Read, AllocationSize: n/a, OpenResult: Opened
12:11:25,5794274 MsiExec.exe 2172 ReadFile C:\Users\sssssssssssss\AppData\Local\Temp\is7BC4.tmp END OF FILE Offset: 0, Length: 1.024, Priority: Normal
12:11:25,5794545 MsiExec.exe 2172 QueryStandardInformationFile C:\Users\sssssssssssss\AppData\Local\Temp\is7BC4.tmp SUCCESS AllocationSize: 0, EndOfFile: 0, NumberOfLinks: 1, DeletePending: False, Directory: False
12:11:25,5794721 MsiExec.exe 2172 ReadFile C:\Users\sssssssssssss\AppData\Local\Temp\is7BC4.tmp SUCCESS Offset: 0, Length: 0, Priority: Normal
12:11:25,5794913 MsiExec.exe 2172 CloseFile C:\Users\sssssssssssss\AppData\Local\Temp\is7BC4.tmp SUCCESS
12:11:25,5797143 MsiExec.exe 2172 QueryOpen C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp FAST IO DISALLOWED
12:11:25,5798292 MsiExec.exe 2172 CreateFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
12:11:25,5798902 MsiExec.exe 2172 QueryBasicInformationFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS CreationTime: 05.02.2010 12:11:25, LastAccessTime: 05.02.2010 12:11:25, LastWriteTime: 05.02.2010 12:11:25, ChangeTime: 05.02.2010 12:11:25, FileAttributes: ANCI
12:11:25,5799037 MsiExec.exe 2172 CloseFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS
12:11:25,5801929 MsiExec.exe 2172 CreateFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS Desired Access: Read Data/List Directory, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a, OpenResult: Opened
12:11:25,5803157 MsiExec.exe 2172 WriteFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS Offset: 0, Length: 53.248, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal
12:11:25,5809456 MsiExec.exe 2172 SetEndOfFileInformationFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS EndOfFile: 53.248
12:11:25,5809938 MsiExec.exe 2172 CreateFileMapping C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS SyncType: SyncTypeOther
12:11:25,5810383 MsiExec.exe 2172 CreateFileMapping C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp FILE LOCKED WITH ONLY READERS SyncType: SyncTypeCreateSection, PageProtection: PAGE_READONLY
12:11:25,5810488 MsiExec.exe 2172 QueryStandardInformationFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS AllocationSize: 53.248, EndOfFile: 53.248, NumberOfLinks: 1, DeletePending: False, Directory: False
12:11:25,5811224 MsiExec.exe 2172 CreateFileMapping C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS SyncType: SyncTypeOther
12:11:25,5922385 MsiExec.exe 2172 Load Image C:\Users\SSSSSS~1\AppData\Local\Temp\_is8655.tmp SUCCESS Image Base: 0x800000, Image Size: 0xd000
12:11:25,5922835 MsiExec.exe 2172 CloseFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS
12:11:25,5924616 MsiExec.exe 2172 QueryOpen C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp FAST IO DISALLOWED
12:11:25,5925770 MsiExec.exe 2172 CreateFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
12:11:25,5926384 MsiExec.exe 2172 QueryBasicInformationFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS CreationTime: 05.02.2010 12:11:25, LastAccessTime: 05.02.2010 12:11:25, LastWriteTime: 05.02.2010 12:11:25, ChangeTime: 05.02.2010 12:11:25, FileAttributes: ANCI
12:11:25,5926521 MsiExec.exe 2172 CloseFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS
12:11:25,5928385 MsiExec.exe 2172 CreateFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS Desired Access: Read Data/List Directory, Execute/Traverse, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a, OpenResult: Opened
12:11:25,5929250 MsiExec.exe 2172 CreateFileMapping C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS SyncType: SyncTypeOther
12:11:25,5929935 MsiExec.exe 2172 CreateFileMapping C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp FILE LOCKED WITH ONLY READERS SyncType: SyncTypeCreateSection, PageProtection: PAGE_EXECUTE
12:11:25,5930429 MsiExec.exe 2172 CreateFileMapping C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS SyncType: SyncTypeOther
12:11:25,5930683 MsiExec.exe 2172 CloseFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS
12:11:25,5942719 MsiExec.exe 2172 Load Image C:\Users\SSSSSS~1\AppData\Local\Temp\_is8655.tmp SUCCESS Image Base: 0x800000, Image Size: 0xd000
12:11:25,5945042 MsiExec.exe 2172 RegOpenKey HKLM\Software\Microsoft\Windows\CurrentVersion\SideBySide SUCCESS Desired Access: Read
12:11:25,5945487 MsiExec.exe 2172 RegQueryValue HKLM\COMPONENTS\PreferExternalManifest NAME NOT FOUND Length: 20
12:11:25,5945633 MsiExec.exe 2172 RegCloseKey HKLM\COMPONENTS SUCCESS
12:11:25,5947254 MsiExec.exe 2172 CreateFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a, OpenResult: Opened
12:11:25,5948140 MsiExec.exe 2172 QueryBasicInformationFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS CreationTime: 05.02.2010 12:11:25, LastAccessTime: 05.02.2010 12:11:25, LastWriteTime: 05.02.2010 12:11:25, ChangeTime: 05.02.2010 12:11:25, FileAttributes: ANCI
12:11:25,5986885 MsiExec.exe 2172 CloseFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SUCCESS
12:11:25,5991260 MsiExec.exe 2172 CreateFile C:\Users\sssssssssssss\AppData\Local\Temp\_is8655.tmp SHARING VIOLATION Desired Access: Read Attributes, Delete, Disposition: Open, Options: Non-Directory File, Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
12:11:25,5996095 MsiExec.exe 2172 RegOpenKey HKLM\Software\Microsoft\Windows\Windows Error Reporting\Escalation NAME NOT FOUND Desired Access: Read
12:11:25,5997617 MsiExec.exe 2172 RegOpenKey HKLM\Software\Microsoft\SQMClient\Windows\DisabledSessions SUCCESS Desired Access: Read
12:11:25,5997925 MsiExec.exe 2172 RegQueryValue HKLM\SOFTWARE\Microsoft\SQMClient\Windows\DisabledSessions\GlobalSession NAME NOT FOUND Length: 20


During installation the IS reports about missing file _is8655.tmp
As I can see it gets created normally, "loaded" and closed twice. The only problem here is "sharing violation".

Also I find strange that the installation built with IS 2009 tries to access registry under IS 10 keys.

I have recheked once more now. The installation project I am having problems with was converted from IS 10 to IS 12 and then to IS 2009 format.

Before the convertion the custom action worked well in the installation made with IS 12.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 08 February 2010 - 11:21

Not sure what's going on there. I would: 1. create a new test project with only that custom action to see if it works there. 2. Remove the action from the existing project and re-create it.

RothmansUA

RothmansUA
  • Full Members
  • 24 posts

Posted 08 February 2010 - 16:18

QUOTE (Stefan Krueger @ 2010-02-08 11:21)
Not sure what's going on there. I would: 1. create a new test project with only that custom action to see if it works there. 2. Remove the action from the existing project and re-create it.

Thank you Stefan,
The first item I am trying right now.
The second I did already with no success.

Additional info:
The DLL (inherited and not written by me) uses MFC, thus it is dependant on MFC shared library.
I have tried to recompile the DLL linking MFC statically in. That didn't help either (same 3 failures out of 5 PCs).
An InstallShield developer on Flexera forum means that the error according to the log is most probably comes from the DllMain invocation.
My DLL doesn't have DllMain at all (it gets linked in from MFC library).
I am not yet sure if I can get rid of MFC dependency, but I am checking now whether the MFC is the problem.

RothmansUA

RothmansUA
  • Full Members
  • 24 posts

Posted 09 February 2010 - 17:30

At last I could start my custom action!

The reason was obviously in the /MD[d] "Runtime Library = Multi-Threaded DLL" switch of the DLL VS project.

After switch to the /MT[d] "Runtime Library = Multi-Threaded" I could start all my custom actions including MFC DLL one.

So the missing dependency (C Runtime in this case I assume) was the problem.

Thanks for the help!