[SOLVED]Missing run time on Windows 7
-
Hello,
I'm trying to deploy my app to a brand new install of Windows 7, but I'm getting the side-by-side configuration error.
I'm building against the QtSDK.
I've copied every DLL I think I might need into the same directory as the exe:
msvcr90d.dll
msvcr90.dll
msvcp90.dll
msvcp90d.dll
QtCore4.dll
QtCored4.dll
QtGui4.dll
QtGuid4.dll
QtXml4.dll
QtXmld4.dllHere's part of the sxstrace that seems to show that the exe directory is being probed:
INFO: Begin assembly probing.
INFO: Did not find the assembly in WinSxS.
INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC90.DebugCRT\9.0.21022.8__1fc8b3b9a1e18e3b\Microsoft.VC90.DebugCRT.DLL.
INFO: Attempt to probe manifest at Z:\Documents\work\SoftStep\SoftStepQT\qt-12step-deploy-win\Microsoft.VC90.DebugCRT.DLL.
INFO: Attempt to probe manifest at Z:\Documents\work\SoftStep\SoftStepQT\qt-12step-deploy-win\Microsoft.VC90.DebugCRT.MANIFEST.
INFO: Attempt to probe manifest at Z:\Documents\work\SoftStep\SoftStepQT\qt-12step-deploy-win\Microsoft.VC90.DebugCRT\Microsoft.VC90.DebugCRT.DLL.
INFO: Attempt to probe manifest at Z:\Documents\work\SoftStep\SoftStepQT\qt-12step-deploy-win\Microsoft.VC90.DebugCRT\Microsoft.VC90.DebugCRT.MANIFEST.
INFO: Did not find manifest for culture Neutral.
INFO: End assembly probing.Any ideas?
-
You should read this articles:
"Deploying an Application on Windows":http://developer.qt.nokia.com/doc/qt-4.7/deployment-windows.html#id-4dd365a0-4e08-4810-9d5b-5be62a8baaca
"Redistribution of the shared C runtime component in Visual C++":http://support.microsoft.com/kb/326922
And probably this:
"DLL Hell":http://en.wikipedia.org/wiki/DLL_HellAlso if you want to deploy only release you don't need Qt*d4.dll. These are debug versions of Qt libraries.
-
Thanks, I'm familiar with the first link. Basically it says I need to include the run time library which I have done.
I'll check out the second link.
I'm including debug and release right now just for debugging purposes as I'm still switching between them.
-
OK, then I assume the idea is to use a runl-time that's already on the machine. I suspect Vcredist_x86.exe application is involved with this.
-
I just ran vcredist_x86. Still, my app is getting the side-by-side error. More research needed as I don't understand how my app will get matched up with the correct runtime.
-
-
OK, I'll switch to release and see what happens.
I don't want to install Visual C on the target, as I want it top be pristine, just as a customer would start with.
-
If you want a side-by-side installation then note "this":http://connect.microsoft.com/VisualStudio/feedback/details/361682/vc9-sp1-generates-manifests-with-the-wrong-version-number
I had this problem this week.
-
OK, thanks, switching to release stopped the side-by-side error now. Other problems are apparent, but progress is made.
I guess I don't want side-by-side install.
-
[quote author="babazaroni" date="1323966444"]I don't want to install Visual C on the target, as I want it top be pristine, just as a customer would start with.[/quote]
The VC I meant on your dev system. The manifest is integral part of the dll. It states exactly, which MS C runtime will be tried to load what makes it easy to find bugs :-)
[quote author="babazaroni" date="1323968205"]I guess I don't want side-by-side install.[/quote]
YOu have side-by-side for MS C runtime, no (simple) way around. You could also just put the MS C runtime in special subdirs of the app, then you don't need to use the vcredist setup, otherwise, the client must call it or it will (evetually) not work. Not all installs of windows will have all redistributables installed.