jimmejardine / qiqqa-open-source

The open-sourced version of the award-winning Qiqqa research management tool for Windows
GNU General Public License v3.0
381 stars 65 forks source link

Qiqqa open source for Windows for non-admin users #124

Open danieleboaretti opened 5 years ago

danieleboaretti commented 5 years ago

Is it possible to install the open-source version of Qiqqa without admin rights?

At the moment admin rights are needed to run the setup80.exe on Windows, but I am wondering if it is possible without admin rights.

One ideal solution would be to have a ClickOnce verion as it is provided here http://www.qiqqa.com/Download

Thank you for your time

GerHobbelt commented 5 years ago

🤔 I hadn't looked at the ClickOnce Installer before, trying it now.

GerHobbelt commented 5 years ago

😞 That ClickOnce installer did download a whole lot, but did not deliver a working Qiqqa on this machine (there's a Qiqqa icon and it aborts right off the bat, no crash but no running Qiqqa either, while it reports itself as v79.0.0.0).

The UNinstaller did require Admin rights (UAC), so, having zero experience with ClickOnce, I wonder if this can be done in a different way.

https://docs.microsoft.com/en-us/visualstudio/deployment/clickonce-security-and-deployment?view=vs-2019

danieleboaretti commented 5 years ago

It does not have to be with ClickOnce, I was just suggesting an option 😄

On my machine, I have an up and running version of Qiqqa installed with that ClickOnce installer.

I don't know what program you use to deploy the setup.exe file, but if you use Visual Studio here there are some tips: https://stackoverflow.com/questions/4080131/how-to-make-a-setup-work-for-limited-non-admin-users

I hope the link may be useful.

GerHobbelt commented 5 years ago

Qiqqa setup uses InnoSetup for creating installers (setup.exe).

Thanks for the link. I'll see what I can do. 👍

GerHobbelt commented 4 years ago

Note for devs/myself: here's how Microsoft VSCode does it: https://code.visualstudio.com/docs/editor/portable

Since latest Qiqqa code already has some 'developer overrides' on board to facilitate switching multiple modes/behaviours in Qiqqa while testing, that MS doc reads as a solid way forward on this one -- suggest to mimic that behaviour.

keyword: Portable Application, Portable Mode

(which implicitly would solve this issue)

mahmutelmas06 commented 3 years ago

How about just a compiled .zip package without installer ? I mean Portable version of Qiqqa.

GerHobbelt commented 3 years ago

Commit SHA-1: 7e57cb25b4effbbea2be57c917a405f2a2a4253a

In that mode, the registry is only used for a few things, such as registering the qiqqa:// URI and .qiqqa_backup file extension for Qiqqa backup archives. Otherwise, all settings (such as Qiqqa Base Directory) are obtained from the Qiqqa.Portable.Settings.json5 JSON5-formatted configuration file, that must be present in the same directory as the qiqqa.exe executable for it to be recognized as a Portable Application.

The technique used is to make a Portable Application a kind of "developer override" mode: the same files are involved and the way configuration bits and pieces are specified/overridden is the same.

Re "developer override mode" (see also Github):

Now we support the Qiqqa.Developer.Settings.json5 developer config file in the application directory too! (Next to that Qiqqa.Portable.Settings.json5 file)

When we have determined the Base Directory in Qiqqa, we also load the other Qiqqa.Developer.Settings.json5 file that may be available there: hence we now support a chain of 2..3 developer override config files, all formatted the same way, and loaded in this order

All these files are optional; the EXISTANCE of the Qiqqa.Portable.Settings.json5 file determines whether Qiqqa acts like a Portable Application or as a regular install - the file may even be empty then!

Extra: the developer config files can now also override the registry entries used by Qiqqa for various configuration settings:

  "DebugConsole": false,
  "AllowMultipleQiqqaInstances": true,
  "BaseDataDirectory": "Z:\\lib\\tooling\\qiqqa\\Qiqqa\\bin\\Debug\\My.Qiqqa.Libraries",
  "LoadKnownWebLibraries": true,
  "AddLegacyWebLibrariesThatCanBeFoundOnDisk": true,
  "SaveKnownWebLibraries": true,
  "DoInterestingAnalysis_GoogleScholar": false,
  "FolderWatcher": true,
  "TextExtraction": true,
  "SuggestingMetadata": true,
  "BuildSearchIndex": true,
  "RenderPDFPagesForSidePanels": true,
  "RenderPDFPagesForReading": true,
  "RenderPDFPagesForOCR": true,
  "FirstInstallNotification": "83"

While almost all these settings are only relevant for testers or very specialized activities, the BaseDataDirectory setting is very useful as it points Qiqqa to where all your libraries are stored.

You can still easily change that value using the ChangeThisPath button in the startup dialog:

image

and any change there will be saved to the Portable Application's json5 config file so the next time you start Qiqqa, it will automatically point at the desired directory tree.


This feature will be available in the next test release.