Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Oops, forgot to bundle MSVC DLLs #5173

Closed
mixxxbot opened this issue Aug 22, 2022 · 23 comments
Closed

Oops, forgot to bundle MSVC DLLs #5173

mixxxbot opened this issue Aug 22, 2022 · 23 comments

Comments

@mixxxbot
Copy link
Collaborator

Reported by: asantoni
Date: 2009-05-15T06:16:36Z
Status: Invalid
Importance: Critical
Launchpad Issue: lp376801


Quoting Sarah from a blog comment:

"Hey just downloaded [the Win64 build of Mixxx] and tried to install on my 64 bit vista machine. It tells me that the "side-by-side configuration is incorrect" when I try to run it, although the normal version of mixxx works fine."

Doing some googling yields:
http://channel9.msdn.com/forums/TechOff/22266-Side-by-side-screwup/
(and some other random articles about DLL versions being wrong, etc etc etc.)

Read that carefully. I think we might have accidentally bundled a .manifest file that we weren't supposed to. Can anyone confirm that this is or isn't the case?

Thanks,
Albert

@mixxxbot
Copy link
Collaborator Author

Commented by: Pegasus-RPG
Date: 2009-05-16T13:05:30Z


The results of trying those will help in determining where exactly the problem lies. Also, if she could grab any relevant events from the Application and System logs in the Event Viewer, that too would help. http://www.mixxx.org/wiki/doku.php/reporting_bugs#gathering_logs

@mixxxbot
Copy link
Collaborator Author

Commented by: nicolasdiogo
Date: 2009-05-20T09:33:13Z


hi,

i was trying to install the mixxx x64 on a vista ultimate x64 (amd64) and got the same error message, here is the application log

Activation context generation failed for "C:\Program Files (x86)\Mixxx\mixxx.exe". Dependent Assembly Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8" could not be found. Please use sxstrace.exe for detailed diagnosis.

@mixxxbot
Copy link
Collaborator Author

Commented by: asantoni
Date: 2009-05-20T14:56:22Z


Uhhh, Sean, are we distributing the 64-bit version of the Microsoft
Visual C++ 2005 runtime DLLs with Mixxx?
http://www.microsoft.com/downloadS/details.aspx?FamilyID=eb4ebe2d-33c0-4a47-9dd4-b9a6d7bd44da&displaylang=en

The ones we distribute with our 32-bit builds are 32-bit. Also, if you
used MSVC 2008, then I think you should be bundling the Microsoft
Visual C++ 2008 (x64) runtime DLLs instead of the 2005 ones.

On Wed, May 20, 2009 at 2:33 AM, Nicolas Diogo wrote:

hi,

i was trying to install the mixxx x64 on a vista ultimate x64 (amd64)
and got the same error message, here is the application log

Activation context generation failed for "C:\Program Files
(x86)\Mixxx\mixxx.exe". Dependent Assembly
Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"
could not be found. Please use sxstrace.exe for detailed diagnosis.

--
Side-by-side configuration is incorrect
https://bugs.launchpad.net/bugs/376801
You received this bug notification because you are a member of Mixxx
Development Team, which is subscribed to Mixxx.

@mixxxbot
Copy link
Collaborator Author

Commented by: nicolasdiogo
Date: 2009-05-21T07:54:10Z


hello again,

i believe my problem was related to .Net framework update that did not work properly.
after my failed attenpt to run mixxx i tried installing python and that also gave me the same error.

i rollback the .Net update and run the package again and it is all fine now.

thanks for the prompt response, and apologies for the false alarm.

Nicolas

@mixxxbot
Copy link
Collaborator Author

Commented by: Pegasus-RPG
Date: 2009-05-22T19:40:58Z


We aren't distributing them at all to my knowledge. Some users may need to install them as explained in the last bullet here: http://mixxx.org/wiki/doku.php/compiling_on_windows#current_issues_fixes_todo

But Nicolas' find is interesting. I'll have to wreck my build environment to try to replicate the problem though.

@mixxxbot
Copy link
Collaborator Author

Commented by: asantoni
Date: 2009-05-22T21:45:21Z


No no, we should be distributing the Visual Studio runtime DLLs. We
used to be at some point, and I don't recall anyone changing that.

Adam, do you remember what's going on with the runtime DLLs?

On Fri, May 22, 2009 at 12:40 PM, Pegasus wrote:

We aren't distributing them at all to my knowledge. Some users may need
to install them as explained in the last bullet here:
http://mixxx.org/wiki/doku.php/compiling_on_windows#current_issues_fixes_todo

But Nicolas' find is interesting. I'll have to wreck my build
environment to try to replicate the problem though.

--
Side-by-side configuration is incorrect
https://bugs.launchpad.net/bugs/376801
You received this bug notification because you are a member of Mixxx
Development Team, which is subscribed to Mixxx.

@mixxxbot
Copy link
Collaborator Author

Commented by: Pegasus-RPG
Date: 2009-05-24T20:56:52Z


Ah so...opening the win32 build you made as a 7-Zip file indeed shows msvcm80, p80, and r80 dlls while my x64 build has none of those. They are commented out in the NSI file too, so I thought they were old or something. Do I need libflac and cmetrics too? (FLAC files work find in the x64 build for me as-is.) What's dbghelp.dll?

@mixxxbot
Copy link
Collaborator Author

Commented by: Pegasus-RPG
Date: 2009-07-07T21:58:05Z


r2444 of the 1.7 branch now contains a much more intelligent makerelease process which requires the presence of the msvc*.dll files. See http://mixxx.org/wiki/doku.php/build_windows_installer for full details.

@mixxxbot
Copy link
Collaborator Author

Commented by: asantoni
Date: 2009-07-07T23:58:42Z


Ahhh very nice, thank you!

On Tue, Jul 7, 2009 at 5:58 PM, Pegasus wrote:

r2444 of the 1.7 branch now contains a much more intelligent makerelease
process which requires the presence of the msvc*.dll files. See
http://mixxx.org/wiki/doku.php/build_windows_installer for full details.

** Changed in: mixxx/1.7
      Status: Confirmed => Fix Committed

** Branch linked: lp:mixxx/1.7

--
Oops, forgot to bundle MSVC DLLs
https://bugs.launchpad.net/bugs/376801
You received this bug notification because you are a member of Mixxx
Development Team, which is subscribed to Mixxx.

@mixxxbot
Copy link
Collaborator Author

Commented by: Pegasus-RPG
Date: 2009-07-27T04:25:15Z


I'm still getting this error testing on Win32. The DLLs are in place. I'm afraid we'll have to include the MSM from the redistribution installer and get NSIS to install it as part of the Mixxx installation, so the DLLs end up in the SideBySide cache. I'm going to need help on this. Otherwise, we just package the entire vc redist and call its installer (wasting space on the users' HD.)

@mixxxbot
Copy link
Collaborator Author

Commented by: Pegasus-RPG
Date: 2009-07-27T05:08:30Z


Okay, it's related to the pre-built dependencies. The DLLs listed in the winXX_build\mixxx.exe.manifest file need to be included in the package along with _their_ .manifest files.

@mixxxbot
Copy link
Collaborator Author

@mixxxbot
Copy link
Collaborator Author

Commented by: asantoni
Date: 2009-07-27T16:35:05Z


http://doc.trolltech.com/4.5/deployment-windows.html#visual-studio-2005-onwards
This is also a good read.
Check out that Dependency Walker tool they recommend (
http://www.dependencywalker.com/ ). Seems like the equivalent of ldd
on Linux or otool on OS X, and would probably help us out.

What are the other DLLs that needed bundling?

I thought we came to the conclusion that we could just totally ignore
the .manifest stuff and throw the required DLLs in Mixxx's folder. ???

On Sun, Jul 26, 2009 at 10:16 PM, Pegasus wrote:

For reference: http://msdn.microsoft.com/en-us/library/ms235342(VS.80).aspx
and: http://msdn.microsoft.com/en-us/library/ms235265(VS.80).aspx
and: http://msdn.microsoft.com/en-us/library/8kche8ah(VS.80).aspx

--
Oops, forgot to bundle MSVC DLLs
https://bugs.launchpad.net/bugs/376801
You received this bug notification because you are a member of Mixxx
Development Team, which is subscribed to Mixxx.

@mixxxbot
Copy link
Collaborator Author

Commented by: deftdawg
Date: 2009-07-27T18:08:48Z


You gents asked me to take it out of the rewritten NSIS installer script on Mar 11...

Hey Garth,

Can you remove this part of the NSIS file?

78
79 ; We include the MSVC CRT manifest if it exists, otherwise we continue... MSVC builds need this, MinGW builds do not.
80 File /nonfatal "..\mixxx-winlib\Microsoft.VC80.CRT.manifest"
81

Sean discovered at our first coding sprint that the presence of a .manifest file makes Mixxx simply not run on certain Windows machines. To the best of my knowledge, a .manifest file is never required, so I don't think it does anything other than cause problems for us.

Anyone?

Thanks,
Albert

@mixxxbot
Copy link
Collaborator Author

Commented by: Pegasus-RPG
Date: 2009-07-27T20:50:15Z


Or I can just rebuild ALL of the dependencies myself so we have control over the dependent DLLs.

@mixxxbot
Copy link
Collaborator Author

Commented by: asantoni
Date: 2009-07-27T23:06:04Z


On Mon, Jul 27, 2009 at 1:50 PM, Pegasus wrote:

Or I can just rebuild ALL of the dependencies myself so we have control
over the dependent DLLs.

Sorry, why would that solve the problem?

Re: what Garth said, yeah, I thought we could just delete the
.manifest file and we done with it. I talked to someone who worked at
Microsoft about manifest files and even he couldn't explain it
properly.

@mixxxbot
Copy link
Collaborator Author

Commented by: Pegasus-RPG
Date: 2009-07-28T02:52:07Z


Sorry, why would that solve the problem?

Because we're having problems with DLLs that the pre-built Mixxx dependencies depend on, evidenced by the fact that their versions are VS 2005, and I'm using VS 2008.

I thought we could just delete the .manifest file and be done with it.

I didn't understand why it helped before, but I have a good idea now, having read the first article I linked to above (look toward the bottom of the article.) Last time, we were carrying around a manifest for an old/wrong version of a DLL, so removing it helped, at least on systems that had the correct version installed (or we just didn't need that DLL at all anymore.)

This time, at least right now, according to the mixxx.exe.manifest, for win32, we need a particular version of msvcrt80.dll. Win64 wants a debug and runtime build of that same version of that same DLL as well as msvcrt90.dll.

So we have a few choices: 1) for each of the x86 and x64 version of Mixxx, read the mixxx.exe.manifest files and make sure to include the listed versions of the DLLs (and their manifest files, so Windows will try them first) in the Mixxx install packages, 2) don't use any pre-built dependencies but build them ourselves, making sure to specify to embed the manifest in the DLL (we may still need to include msvcrt90.dll however,) or 3) Forget all this crap and move to a MinGW build process in earnest.

@mixxxbot
Copy link
Collaborator Author

Commented by: Pegasus-RPG
Date: 2009-07-28T15:29:04Z


For now, I'm doing option #⁠1. I sent Albert new packages that contain the relevant MSVC DLLs and manifests. Tests good on an x86 XP system. I have no clean x64 system to test on so I bundled all of the MSVC files for each requested version to be safe. Marking Fixed for 1.7.

@mixxxbot
Copy link
Collaborator Author

Commented by: asantoni
Date: 2009-07-28T20:15:30Z


Grabbing your packages from your site now. I'm going to throw them on
downloads.mixxx.org under 1.7.0-beta2-repack. I'll post links to the
forums and mixxx-devel asking for testers.

Thanks,
Albert

On Tue, Jul 28, 2009 at 8:29 AM, Pegasus wrote:

For now, I'm doing option #⁠1. I sent Albert new packages that contain
the relevant MSVC DLLs and manifests. Tests good on an x86 XP system. I
have no clean x64 system to test on so I bundled all of the MSVC files
for each requested version to be safe. Marking Fixed for 1.7.

** Changed in: mixxx/1.7
      Status: Confirmed => Fix Committed

--
Oops, forgot to bundle MSVC DLLs
https://bugs.launchpad.net/bugs/376801
You received this bug notification because you are a member of Mixxx
Development Team, which is subscribed to Mixxx.

@mixxxbot
Copy link
Collaborator Author

Commented by: nicolasdiogo
Date: 2009-07-29T05:50:29Z


Hi Albert,

i also would like to ask you to post links on this list as well.
so i can try the new option.

thanks,

Nicolas

________________________________
From: Albert Santoni <email address hidden>
To: <email address hidden>
Sent: Tuesday, 28 July, 2009 21:15:30
Subject: Re: [Bug 376801] Re: Oops, forgot to bundle MSVC DLLs

Grabbing your packages from your site now. I'm going to throw them on
downloads.mixxx.org under 1.7.0-beta2-repack. I'll post links to the
forums and mixxx-devel asking for testers.

Thanks,
Albert

On Tue, Jul 28, 2009 at 8:29 AM, Pegasus wrote:

For now, I'm doing option #⁠1. I sent Albert new packages that contain
the relevant MSVC DLLs and manifests. Tests good on an x86 XP system. I
have no clean x64 system to test on so I bundled all of the MSVC files
for each requested version to be safe. Marking Fixed for 1.7.

** Changed in: mixxx/1.7
Status: Confirmed => Fix Committed

--
Oops, forgot to bundle MSVC DLLs
https://bugs.launchpad.net/bugs/376801
You received this bug notification because you are a member of Mixxx
Development Team, which is subscribed to Mixxx.

--
Oops, forgot to bundle MSVC DLLs
https://bugs.launchpad.net/bugs/376801
You received this bug notification because you are a direct subscriber
of the bug.

@mixxxbot
Copy link
Collaborator Author

Commented by: Pegasus-RPG
Date: 2009-07-29T12:01:29Z


Nicolas: Have you not checked out the forums? http://mixxx.org/forums/viewtopic.php?f=1&t=731

@mixxxbot
Copy link
Collaborator Author

Issue closed with status Invalid.

@mixxxbot mixxxbot transferred this issue from another repository Aug 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant