Install error 1920 about winsxs merge modules
Hi all,
When I try to insltall my msi package I get an error only in vista and 7. "Error 1920. Service ... (...) failed to start. Veryfy that you have sufficent privileges to start system services"
http://img214.imageshack.us/img214/8666/clasetuperror.jpg
I get this error in vista or 7 if I build my setup with C++ 9 CRT Winsxs MSM merge module
http://img808.imageshack.us/img808/3439/vc9.jpg
If I use C and C++ 7 runtime libraries it doesn't problem
http://img97.imageshack.us/img97/1459/vc7ler.jpg
but with this I must build my exe with old versions of Ms Visual Studio.
Does anyone have idea how can I cope with that?
Edit: Image adresses linked
When I try to insltall my msi package I get an error only in vista and 7. "Error 1920. Service ... (...) failed to start. Veryfy that you have sufficent privileges to start system services"
http://img214.imageshack.us/img214/8666/clasetuperror.jpg
I get this error in vista or 7 if I build my setup with C++ 9 CRT Winsxs MSM merge module
http://img808.imageshack.us/img808/3439/vc9.jpg
If I use C and C++ 7 runtime libraries it doesn't problem
http://img97.imageshack.us/img97/1459/vc7ler.jpg
but with this I must build my exe with old versions of Ms Visual Studio.
Does anyone have idea how can I cope with that?
Edit: Image adresses linked
0 Comments
[ + ] Show comments
Answers (11)
Please log in to answer
Posted by:
anonymous_9363
14 years ago
Posted by:
togikan
14 years ago
Posted by:
togikan
14 years ago
Posted by:
anonymous_9363
14 years ago
Posted by:
john.pirvu
14 years ago
Hi,
I don't remember where exactly I read about this, but I think the problem is caused by assemblies from the merge module (the dependencies you mentioned). These assemblies are registered by MsiPublishAssemblies action which comes after StartServices. A solution is to modify the StartServices action sequence to run after MsiPublishAssemblies.
Regards,
John
I don't remember where exactly I read about this, but I think the problem is caused by assemblies from the merge module (the dependencies you mentioned). These assemblies are registered by MsiPublishAssemblies action which comes after StartServices. A solution is to modify the StartServices action sequence to run after MsiPublishAssemblies.
Regards,
John
Posted by:
togikan
14 years ago
Hi again,
@VBScab
I use process monitor and check nearly 60.000 events :) with new extra informations, the situation is like this;
When I check my program's exe with Dependency Walker, I see that 2 dlls (MSVCP90.DLL and MSVCR90.DLL) are missing as in this photo.
http://img202.imageshack.us/img202/6094/cladependency.png
With Process Monitor I searched these dlls and only find entries like
http://img825.imageshack.us/img825/4884/event1h.png
http://img409.imageshack.us/img409/6470/event2t.png
http://img508.imageshack.us/img508/7658/event3.png
@ john.pirvu
Hope that my problem is about that but in my install shield sequence, MsiPublishAssemblies is before StartServices. It doesn't like the couse of my problem :(
http://img52.imageshack.us/img52/8456/startservicesseq.jpg
@VBScab
I use process monitor and check nearly 60.000 events :) with new extra informations, the situation is like this;
When I check my program's exe with Dependency Walker, I see that 2 dlls (MSVCP90.DLL and MSVCR90.DLL) are missing as in this photo.
http://img202.imageshack.us/img202/6094/cladependency.png
With Process Monitor I searched these dlls and only find entries like
Date & Time: 15.09.2010 13:39:12
Event Class: Registry
Operation: RegEnumValue
Result: SUCCESS
Path: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\27BE807B28AA7BE3B80B8D54AB539CD3
TID: 4828
Duration: 0.0000053
Index: 0
Name: FA4EDAFCFC0C40A47A674731811F56F8
Type: REG_SZ
Length: 258
Data: >msvcr90.dll\Microsoft.VC90.CRT,type="win32",version="9.0.21022.8",publicKeyToken="1fc8b3b9a1e18e3b",processorArchitecture="x86"
http://img825.imageshack.us/img825/4884/event1h.png
Date & Time: 15.09.2010 13:39:12
Event Class: Registry
Operation: RegQueryValue
Result: SUCCESS
Path: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\27BE807B28AA7BE3B80B8D54AB539CD3\FA4EDAFCFC0C40A47A674731811F56F8
TID: 4828
Duration: 0.0000049
Type: REG_SZ
Length: 258
Data: >msvcr90.dll\Microsoft.VC90.CRT,type="win32",version="9.0.21022.8",publicKeyToken="1fc8b3b9a1e18e3b",processorArchitecture="x86"
http://img409.imageshack.us/img409/6470/event2t.png
Date & Time: 15.09.2010 13:39:12
Event Class: Registry
Operation: RegSetValue
Result: SUCCESS
Path: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\27BE807B28AA7BE3B80B8D54AB539CD3\F5086904C7024084EA0A96FED0E58E6A
TID: 4828
Duration: 0.0004927
Type: REG_SZ
Length: 258
Data: >msvcr90.dll\Microsoft.VC90.CRT,version="9.0.21022.8",publicKeyToken="1fc8b3b9a1e18e3b",processorArchitecture="x86",type="win32"
http://img508.imageshack.us/img508/7658/event3.png
@ john.pirvu
Hope that my problem is about that but in my install shield sequence, MsiPublishAssemblies is before StartServices. It doesn't like the couse of my problem :(
http://img52.imageshack.us/img52/8456/startservicesseq.jpg
Posted by:
anonymous_9363
14 years ago
Posted by:
togikan
14 years ago
Posted by:
anonymous_9363
14 years ago
No, I meant have you installed them using the EXE as supplied by MS to see if you get the same problem.
Having the DLLs in various folders under the WinSxS folder is meaningless without the accompanying registry entry to tell Windows where they are. That procedure is way too complex to explain here which is why it's left to the side-by-side installation mechanism.
Having the DLLs in various folders under the WinSxS folder is meaningless without the accompanying registry entry to tell Windows where they are. That procedure is way too complex to explain here which is why it's left to the side-by-side installation mechanism.
Posted by:
jamsek19
14 years ago
Hello.
I also get that error. I also found that service was properly installed therefore I implemented to skip StartService action. After installation I was able to start service manually. So the problem was that VC++ dlls was not installed yet.
By searching on the web I found in a page http://www.mail-archive.com/wix-users@lists.sourceforge.net/msg17369.html one explanation. It is from Phil Wilson (the author of book about Windows Installer) and he says that problem is just on Windows Vista and newer systems because installing VC++ runtime by merge modules actually happened at Commit phase of installation which happened much later than action StartService. Therefore the service which depends on VC++ runtime cannot starts at that time because dlls are not installed yet. This confirms my problem - after installation the service can be started.
At the moment I have no idea how to properly solve this problem. I see these possibilities and no one of them is clear to implement
Best regards
Andreo
I also get that error. I also found that service was properly installed therefore I implemented to skip StartService action. After installation I was able to start service manually. So the problem was that VC++ dlls was not installed yet.
By searching on the web I found in a page http://www.mail-archive.com/wix-users@lists.sourceforge.net/msg17369.html one explanation. It is from Phil Wilson (the author of book about Windows Installer) and he says that problem is just on Windows Vista and newer systems because installing VC++ runtime by merge modules actually happened at Commit phase of installation which happened much later than action StartService. Therefore the service which depends on VC++ runtime cannot starts at that time because dlls are not installed yet. This confirms my problem - after installation the service can be started.
At the moment I have no idea how to properly solve this problem. I see these possibilities and no one of them is clear to implement
- implement own start service action: this is more or less bad idea because you have to have in mind rollback actions of start/stop service during upgrades, uninstall etc.
- install VC++ runtime as regular install files in INSTALLDIR folder which is bad because these files are not per computer but per application,
- static link VC++ dlls into service: the service binary is bigger, loading take more time, etc. after all we loose dynamic linking libraries which we want to.
Best regards
Andreo
Posted by:
anonymous_9363
14 years ago
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.