Please sign in to comment.
Update the Mumble installer to work with a versioned directory hierar…
…chy. This commit updates the Mumble installer to install all binaries except mumble.exe into a "versioned root". For example, a typical Mumble installation would look something like this (rooted the install target, typically "C:\Program Files (x86)\Mumble"): /mumble.exe /Versions/1.3.0/mumble_app.dll /Versions/1.3.0/mumble_ol.dll /Versions/1.3.0/mumble_ol_x64.dll /Versions/1.3.0/mumble_ol_helper.exe /Versions/1.3.0/mumble_ol_helper_x64.exe /Versions/1.3.0/mumble-g15-helper.exe /Versions/1.3.0/[various runtime DLLs, D3DCompiler, MSVCRT, etc.] This also changes the installer to disable use of the Windows restart manager. The Windows restart manager does not work too well when the Mumble overlay is in use. In this case, the restart manager will prompt users to restart all applications that the overlay is injected into. Users see this as a big list of programs that they must close to upgrade Mumble. This can be very scary for anyone that does not know about the inner workings of the Mumble overlay, and are new to Mumble. It is an instant red flag for people, and they will associate Mumble with malware, or be afraid that it will actually touch anything in those programs and make them unusable in some fashion. The combination of disabling the restart manager and the new versioned directory hierarchy removes nearly all of the cases where a user sees a "file in use" dialog when running the Mumble installer. The overlay DLLs will not trigger the "files in use" dialog anymore, because upgrading to a newer version of Mumble will cause the new overlay DLLs to be installed in a distinct directory. The removal of the old overlay files will also not trigger the "files in use" dialog. Their removal will simply be scheduled on the next restart of the computer. This commit also includes a forceful termination of "mumble.exe" when performing an upgrade of the Mumble installation. This is done because the removal of the restart manager functionality in the installer unfortunately also removes the ability to have the restart manager quit Mumble on upgrade. With the implementation of the versioned directory hierarchy, there is a problem with the placement of some of our dependencies, at least when Mumble and Murmur are installed at the same time. The "murmur.exe" executable expects dbghelp.dll, msvcr120.dll and msvcp120.dll to be next to "murmur.exe". However, with this new directory hierarchy for the client, those DLLs live in the versioned root instead. To remedy this, we include two copies of these dependencies. If Murmur is not chosen during installation, only Mumble's copies are installed in the versioned root. If Murmur is selected, the DLLs will also be installed next to murmur.exe.
- Loading branch information...
Showing with 115 additions and 59 deletions.