Cataurus / MonoDevelopWin

MonoDevelop is a cross platform .NET IDE
http://www.monodevelop.com
14 stars 1 forks source link

[feature suggestion] add registry key to pre-install check for gtk version to support gtk-sharp #1

Closed ghost closed 1 year ago

ghost commented 1 year ago

note: that's an old thing.. the msi needs updating.


2023-02-28_113818

2023-02-28_114113

it results with the installer showing a warning and closing.. 2023-02-28_114722

(note:
the WOW6432Node is because the dll files are compiled as x86 although it should not matter too much..
gtk-sharp also writes system environment settings GTK_BASEPATH with the value C:\Program Files (x86)\GtkSharp\2.12\
)

I suggest removing the pre-check all together,
or extend the checks to above reg-key, with and without the WOW part, (just in-case future versions will include x64 builds).


my workaround is the following registry file that includes couple of redundancies..
it allows users to install mono-develop in various systems and variations.

Windows Registry Editor Version 5.00

;run this after installing GTK. it will not register assemblies just help you to install mono-develop.
;this will help you install stuff that needs GTK.  
;version and install folder can be string, or keys where the default value contains the data, 
;there is novell as well as xamarin variation, 
;there is also `HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node` and `HKEY_LOCAL_MACHINE\SOFTWARE\` variation.
;
; by default that's the only entry for the newer GTK.. but it won't work with the setup of mono-develop.
; ---------------------------------------------------------------------------
; Windows Registry Editor Version 5.00
; [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Xamarin\GtkSharp]
; [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Xamarin\GtkSharp\InstallFolder]
; @="C:\\Program Files (x86)\\GtkSharp\\2.12\\"
; [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Xamarin\GtkSharp\Version]
; @="2.12.45"
; ---------------------------------------------------------------------------
;
; EladKarako January 2023.

;-------------------------------------------------------------- novel normal.
[HKEY_LOCAL_MACHINE\SOFTWARE\Novell\GtkSharp]
"Version"="2.12.45"
"InstallFolder"="C:\\Program Files (x86)\\GtkSharp\\2.12\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Novell\GtkSharp\InstallFolder]
@="C:\\Program Files (x86)\\GtkSharp\\2.12\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Novell\GtkSharp\Version]
@="2.12.45"

;-------------------------------------------------------------- novel wow64.
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Novell\GtkSharp]
"Version"="2.12.45"
"InstallFolder"="C:\\Program Files (x86)\\GtkSharp\\2.12\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Novell\GtkSharp\InstallFolder]
@="C:\\Program Files (x86)\\GtkSharp\\2.12\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Novell\GtkSharp\Version]
@="2.12.45"

;-------------------------------------------------------------- xamarin normal.
[HKEY_LOCAL_MACHINE\SOFTWARE\Xamarin\GtkSharp]
"Version"="2.12.45"
"InstallFolder"="C:\\Program Files (x86)\\GtkSharp\\2.12\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Xamarin\GtkSharp\InstallFolder]
@="C:\\Program Files (x86)\\GtkSharp\\2.12\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Xamarin\GtkSharp\Version]
@="2.12.45"

;-------------------------------------------------------------- xamarin wow64.
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Xamarin\GtkSharp]
"Version"="2.12.45"
"InstallFolder"="C:\\Program Files (x86)\\GtkSharp\\2.12\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Xamarin\GtkSharp\InstallFolder]
@="C:\\Program Files (x86)\\GtkSharp\\2.12\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Xamarin\GtkSharp\Version]
@="2.12.45"

as well as adding a system environment variable GTKSHARPVERSION with value of 2.12.45 .

which will make the installer find the GTK and continue the installation.


I've actually been using "msiexec.exe" /a "C:\Users\Elad\Desktop\MonoDevelop-7.8.4.1-x86-Debug.msi" /qb TARGETDIR="C:\Users\Elad\Desktop\MonoDevelop-7.8.4.1-x86-Debug\" INSTALLDIR="C:\Users\Elad\Desktop\MonoDevelop-7.8.4.1-x86-Debug\"

to extract the whole msi, and located the entire thing to a disk-on-key,
and just running MonoDevelop\bin\MonoDevelop.exe which seems to work just fine.

2023-02-28_115751