joyfullservice / msaccess-vcs-addin

Synchronize your Access Forms, Macros, Modules, Queries, Reports, and more with a version control system.
Other
215 stars 40 forks source link

Doesn't fully install for 64-bit versions #24

Closed A9G-Data-Droid closed 4 years ago

A9G-Data-Droid commented 4 years ago

Due to the use of "WOW6432Node" in the registry key.

The registry redirector transparently directs an application's registry access to the appropriate ISN subnode. Redirection subnodes in the registry tree are created automatically by the WOW64 component using the name Wow6432Node. As a result, it is essential not to name any registry key you create Wow6432Node.

https://docs.microsoft.com/en-us/windows/win32/sysinfo/32-bit-and-64-bit-application-data-in-the-registry

AND

Applications should not access a key's physical location directly, because this location may change.

https://docs.microsoft.com/en-us/windows/win32/winprog64/registry-redirector

joyfullservice commented 4 years ago

Thanks for the tip on this... I don't have access to a 64-bit version of Access, but would you be able to create a pull request that fixes this issue? I am happy to test it on the 32-bit version.

As you may have seen, the installer manually creates the registry keys to mirror what the built-in "Add-in Manager" does. This allows the user to uninstall it using the Add-in Manager if they choose.

However, one caveat with this approach is a bit more fundamental to how it works. The add-in file is installed in the user's AppData folder, while the registry keys are created in the HKLM hive (which is what requires running Access as admin). This gives the security benefit of arbitrary code not being able to hijack menu add-ins, but it also has some interesting side effects if you install it under one user account, then try to use it under a different user account. (Of course you can just install it again under the new user to be up and running again.)

I am certainly open to ideas on how to improve the installer. My primary goal was to have something very simple and intuitive to install and update, so if we take a different approach that is just as easy to use, (Such as installing the add-in outside the regular add-in folder, like what v-tools does) I am happy to review any pull requests in this regard.

Thanks again for your input in this project!

A9G-Data-Droid commented 4 years ago

I am thinking that using a ribbon control for the interface might be easier. It wouldn't require admin to install and it would give more control over the look and feel. Have you tried a ribbon interface already? Is there some reason that doesn't work?

A9G-Data-Droid commented 4 years ago

Also, we need a method to uninstall. I see no code to cleanup what was done.

joyfullservice commented 4 years ago

I am open to the idea of a ribbon interface as an alternative (or in addition to) to the add-in menu. I have used custom ribbons with Forms, but not had experience with a global one that would be available all the time. What does this look like, and how would it be loaded? Would it be more difficult to support on different versions of Access?

joyfullservice commented 4 years ago

Also, we need a method to uninstall. I see no code to cleanup what was done.

Regarding the uninstall, sounds like a great idea! Are you thinking of something we could add to the list of installed programs in Windows? Maybe we should add this as a separate enhancement issue...

A9G-Data-Droid commented 4 years ago

Ok, I have a ribbon branch. It works when looking at the version control addin itself, loads automatically. I haven't figured out how to get it to load when you open other projects.

https://github.com/A9G-Data-Droid/msaccess-vcs-integration/tree/VCSRibbon

image

cenx1 commented 4 years ago

This issue seems to have drifted a bit. I suggest you open a separate issue for the VCS Ribbon (which I also find very cool and hope we can achieve).

Version 3.1.5 seems to be installing without issues in my 64 bit MS Access.

Unless others with 64 bit MS Access still have issues I see this issue as closed.

joyfullservice commented 4 years ago

It could very possibly be that this was fixed with the registry change b7a4ae3ec59eb245f018fd464a9a2dfd7b3d282a in the installer. Based on this feedback, I will go ahead and close this (installer) issue per your recommendation.