This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- oleaut32.dll, stdole32.tlb file self registration issue in Vista
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 29, 2009
12:19 AM
oleaut32.dll, stdole32.tlb file self registration issue in Vista
Hi,
I have an install script project and I just upgraded from InstallShield
7 to InstallShield 2010.
The installer works fine with Win XP but the self registration error is
thrown only in WIndows Vista.
I am running the installer as the administrator. I set the 'required
execution level' to 'administrator', so even if a user is logged in as a
standard user in Vista, the installer demands the admin credentials and
then runs the installer as the administrator.
I debugged the install script and identified that the error is thrown at the function Do(SELFREGISTRATIONPROCESS). This function is also internally called by FeatureMoveData function.
The installer needs oleaut32.dll version 2.x or higher to work and the version provided by Vista is 6.x . I am not sure why this self registration error comes up when a higer version of the dll is already available and registered. Are there any work arounds or solutions to self regiester system dlls like oleaut32.dll on Vista?
Any help will be appreciated.
Thanks in advance.
I have an install script project and I just upgraded from InstallShield
7 to InstallShield 2010.
The installer works fine with Win XP but the self registration error is
thrown only in WIndows Vista.
I am running the installer as the administrator. I set the 'required
execution level' to 'administrator', so even if a user is logged in as a
standard user in Vista, the installer demands the admin credentials and
then runs the installer as the administrator.
I debugged the install script and identified that the error is thrown at the function Do(SELFREGISTRATIONPROCESS). This function is also internally called by FeatureMoveData function.
The installer needs oleaut32.dll version 2.x or higher to work and the version provided by Vista is 6.x . I am not sure why this self registration error comes up when a higer version of the dll is already available and registered. Are there any work arounds or solutions to self regiester system dlls like oleaut32.dll on Vista?
Any help will be appreciated.
Thanks in advance.
(5) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 29, 2009
11:15 AM
Do you still need to distribute and register these files? They sound like protected system files, and probably their self-registration tries to write to protected registry keys. InstallScript will see the result of that as an error like you say. If you still need these for some older systems, perhaps you can limit which operating systems will receive these files.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 29, 2009
01:36 PM
Thanks MichaelU.
Yeah, I need to distribute and register these files. Though, I haven't yet tested my application without registering these files during install hoping that the better versions of oleaut32.dll in Vista etc are backward compatible and wont cause problems to my application.
Anyway a probable solution I can think of, though I am not sure if it will work, I need some help with this solution -
1. Toggle UAC in vista through InstallScript and then try registering these dlls. I remember seeing the permission level in Vista - Administrator doesn't have full control on the files like oleaut32.dll. Would this work? If its possible, how to enable or disable UAC through InstallScript?
Thanks.
Yeah, I need to distribute and register these files. Though, I haven't yet tested my application without registering these files during install hoping that the better versions of oleaut32.dll in Vista etc are backward compatible and wont cause problems to my application.
Anyway a probable solution I can think of, though I am not sure if it will work, I need some help with this solution -
1. Toggle UAC in vista through InstallScript and then try registering these dlls. I remember seeing the permission level in Vista - Administrator doesn't have full control on the files like oleaut32.dll. Would this work? If its possible, how to enable or disable UAC through InstallScript?
Thanks.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Nov 02, 2009
12:52 PM
You should not toggle UAC in that manner even if it were possible; I don't think it is. Furthermore, I don't think UAC and Windows Resource Protection are the same thing.
I also question the implied theory that downgrading a system file would cause less breakage to other programs on the machine, than trusting Microsoft to have maintained backwards compatibility in such a core protected DLL would cause to your app. Don't fight the system; just test on it. 🙂
I also question the implied theory that downgrading a system file would cause less breakage to other programs on the machine, than trusting Microsoft to have maintained backwards compatibility in such a core protected DLL would cause to your app. Don't fight the system; just test on it. 🙂
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Nov 10, 2009
11:14 PM
Thanks MichaelU, I took your advice and let UAC alone. Besides, I think every toggle of the UAC calls for a reboot so that entirely rules this option out. I cant have my installer rebooting twice. 🙂
I found a rather simple resolution/alternative to get rid of these errors. I moved the two files oleaut32.dll, stdole32.tlb to a component in another feature with the self register property set to false. This prevents the files to self ergister when Do(SELFREGISTRATIONPROCESS) is called. And I added this to my installscript to manually register these files.
This code will ensure that these files are registered. All I will to do is run this through a condition and register the files only if necessary for e.g. case the OS is not Vista or if better versions of the files are already present etc.
In Windows Vista I know that there are better versions of these 2 files which are backward compatible.
I found a rather simple resolution/alternative to get rid of these errors. I moved the two files oleaut32.dll, stdole32.tlb to a component in another feature with the self register property set to false. This prevents the files to self ergister when Do(SELFREGISTRATIONPROCESS) is called. And I added this to my installscript to manually register these files.
STRING szOleaut32, szStdole2, szTargetStdole2, szTargetOleaut32;
szOleaut32 = "Oleaut32.dll";
szStdole2 = "Stdole2.tlb";
szTargetOleaut32 = WINSYSDIR ^ szOleaut32;
szTargetStdole2 = WINSYSDIR ^ szStdole2;
szRegsvr= "regsvr32.exe";
szCommandParms= " /s ";
LaunchApp(szRegsvr, szCommandParms + szOleaut32 );
LaunchApp(szRegsvr, szCommandParms + szStdole2 );
This code will ensure that these files are registered. All I will to do is run this through a condition and register the files only if necessary for e.g. case the OS is not Vista or if better versions of the files are already present etc.
In Windows Vista I know that there are better versions of these 2 files which are backward compatible.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 12, 2012
10:49 PM
😮 Have the smame Problem . using Install Shield 2012 , and the build pkg install well in Win XP but not in Win 7 .
Was wondering how were you able to debug FeatureMoveData , cause its a installshield's function . I have the same oleaut32.dll and stdole2.tlb , in my project too. tried setting the self registration process to No , but still was not able to pass through FeatureMoveData.
Only if i could know , which dlls are failing via debugging FeatureMoveData. Can anly please let me know how to debug inbuilt function of Installshield like FeatureMoveData??:mad:
Was wondering how were you able to debug FeatureMoveData , cause its a installshield's function . I have the same oleaut32.dll and stdole2.tlb , in my project too. tried setting the self registration process to No , but still was not able to pass through FeatureMoveData.
Only if i could know , which dlls are failing via debugging FeatureMoveData. Can anly please let me know how to debug inbuilt function of Installshield like FeatureMoveData??:mad:
![](/skins/images/CC38E504FC9E1309DC48ACFEB4925670/responsive_peak/images/icon_anonymous_message.png)