Always use CustomAction to register COM DLLs#1500
Merged
Merged
Conversation
This is a preparation to change the Mozc's installation directory from "Program Files (x86)" to "Program Files" not only for new installations but also for existing installations (google#1086). The ground truth is that TSF-based IMEs need to register their COM DLLs to the registry key "HKEY_CLASSES_ROOT\CLSID", and there are basically two ways to do it in the installer (MSI file): A. Use custom action in WiX, which calls Win32 registry APIs to manually manipulate the registry. B. Declare COM information in the pre-defined database of MSI file, and let MSI engine to register the COM DLLs. Mozc started with the method A, then switched to the method B [1], then switched back to methods A only for universal installer [2], and now is fully switching back to the method A for all the installers with this commit. The problem is that the method B is feasible only when the COM DLL file name and destination path are determined at the build time, and it is not the case for both universal installer and installation directory migration. Now that all the installers we build (x64 only, ARM64 only, and universal) hit such limitation, there is no reason to keep the method B code path. [1]: e467907 [2]: 96bab12
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This is a preparation to change the Mozc's installation directory from
"Program Files (x86)"to"Program Files"not only for new installations but also for existing installations (#1086).The ground truth is that TSF-based IMEs need to register their COM DLLs to the registry key
HKEY_CLASSES_ROOT\CLSID, and there are basically two ways to do it in the installer (MSI file):Mozc started with the method A, then switched to the method B (e467907), then switched back to methods A only for universal installer (96bab12), and now is fully switching back to the method A for all the installers with this commit.
The problem is that the method B is feasible only when the COM DLL file name and destination path are determined at the build time, and it is not the case for both universal installer and installation directory migration. Now that all the installers we build (x64 only, ARM64 only, and universal) hit such limitation, there is no reason to keep the method B code path.
Issue IDs
%ProgramFiles%\Mozcrather than%ProgramFiles(x86)%\Mozc#1086Steps to test new behaviors (if any)