Is there a posibility to tell Innosetup to uninstall the 32 bit version of the application (that usually resides in Program Files (x86)) in order to install the 64 bit version of the application (usually in Program Files). If the 32 bit version is not uninstalled, then bot of them will start at startup, causing problems.
I don't know if there is a procedure for this. Given the fact that the 64 bit application will basically be a different application, trying to uninstall the 32 bit application seems like trying to uninstall a non-related application.
The motivation will be that less and less vendors offer support for 32 bit libraries. For example, there are no 32 bit libraries for Qt for msvc2017. So the earlier I move to 64 bit the better.
Note: if this is not possible in Innosetup, any other alternative is welcome.
Just uninstall the previous 32-bit version, as any other.
See How to detect old installation and offer removal?
It should work almost out-of-the-box, as long as both the installers for 32-bit and 64-bit version have the same AppId. The only difference is that you need to look to for the uninstall key explicitly in HKLM32 (32-bit hive) instead of HKLM/HKEY_LOCAL_MACHINE (which defaults to 64-bit hive in 64-bit install mode).
If you uninstall the 32-bit version from InitializeSetup already, as the accepted answer to the above question shows, Inno Setup won't notice that the 32-bit version ever existed and will even "reset" the default installation path to the 64-bit Program Files folder.
Related
Despite being new to Haskell and everything, thanks to the nice documentation and tutorials, I was able to install Haskell using Stack on my Windows 64 bit system. I can build the tutorial examples and all works fine. But: I also need 32 bit executables as build result, as the software must run on 32 bit Windows IoT too.
How do I setup cross-compiling to 32 bit Windows? Automatically generating both the 32 bit and the 64 bit executables would be most comfortable, but not required.
I fear you're going to have a bit of a slog ahead. Official GHC releases don't have 32-bit binaries any more, and I don't believe they've ever featured cross-compiler binaries. I think you'll have to build GHC yourself, either natively for 32-bit Windows (and run on a 32-bit Windows or some sort of compatibility mode if that exists) or for cross-compiling. Here are some starting points that may help:
https://gitlab.haskell.org/ghc/ghc/-/wikis/building/porting (for building a native 32-bit compiler)
https://gitlab.haskell.org/ghc/ghc/-/wikis/building/cross-compiling (for building a cross-compiler)
I want to download the current 32bit version of WinPython. The 32bit version is needed for compatibility with pypyodbc and a 32bit MS Access database. I have had a 32bit version of 3.2.7 installed and running correctly for a while, but would like to upgrade to say 3.9 for a few reasons.
But on the usual download sites the WinPython 32 bit versions are all stripped back bundles, without the rich array of packages (pyQT,pyqtgraph, pyserial etc). What is the standard process to get a fully featured WinPython 32bit (v3.9.2)? Perhaps download an older version of the 32 bit version and then overwrite with the new version? Or download the current 64 bit version and install the minimal 32 bit version over the top? Download the minimum and install each needed package via pip?
I know I am missing something, it can't be too hard... But have spent the day googling and not found the way forward.
Without having any better idea, I proceeded with just downloading the 'minimal 32 bit' installation, and then pip'ing the nine or ten packages I needed for my current suite of projects. Only took 15 minutes, and has resulted in a much smaller footprint on my hard disk.
If anyone has a different solution to my original question though, happy to hear it!
Mark
I have written an application that uses CR for Visual Studio. It deploys and runs fine on 32 bit systems. I want it to work on 64 bit systems too, so I ran CRRuntime_64bit_13_0_7.msi to install the redistributable.
When I select my prerequisites in VS 2012, should I see an entry for CR 64 bit? I don't.
In VS, I set the target CPU to x64 and publish (Clickonce). When I try to install it on my Win 7 64 bit system, I get an error:
Unable to install or run the application. The application requires that assembly CrystalDecisions.ReportAppServer.CommonObjectMode Version 13.0.2000.0 be installed in the Global Assembly Cache (GAC) first.
How can I deploy the 64 bit CR runtime with my application?
Thanks
Maybe there's a bug with the Service Pack 7 version of the files? Have you tried with the Service Pack 8 version that was recently released?
SAP Crystal Reports, Developer version for Microsoft Visual Studio
Is your development environment 32-bit or 64-bit? Because that might have a bit to do with it also. Installing and deploying Crystal has always been a pain (I've been working with it since version 7.0) and to introduce the complexity of 32/64-bit makes it even more fun!
Another thing to point out on that link was that you have to run the "Install executable" to get it to integrate into VS properly. When I did so, it asked me if I wanted to install the 64-bit runtime as my PC was 64-bit, did you get to this point and if so, which version did you choose?
In the app we're working on, we have a routine that inspects all assemblies in the dependencies folder and auto-loads classes with a certain attribute, but when I went to run the app targeting a 64-bit CPU (or even Any CPU) it would give me exceptions when trying to load the Crystal Reports assemblies on start-up, but it would work fine when targeting a 32-bit CPU.
Which leads me to think that perhaps they either don't have their 32/64-bitness sorted properly, or their installer isn't doing what it says it is.
I am converting some 32-bit .Net apps to x64. Enterprise Library 5 (32-bit) is used in a bunch of our apps, so I am under the impression that when we re-compile those in x64, then we will need to pull in a x64 version of EntLib. Does anyone know if that exists? I keep searching and I can't seem to find a straight answer - I find burbs about x64 configuration manager tool, but no info about a installable 64-bit version of EntLib5.
The entlib assemblies are architecture neutral. They can be loaded by either 32 or 64 bit processes with no changes.
On a 32-bit process, they'll run as 32-bit. On a 64-bit process, they'll run as 64 bits. No changes needed.
Remember, they're IL, not native code, and don't call into anything native, so there's no bitness dependencies.
I made my application as install setup by install shield 5.0 on 32bit machine but before that i migrated my application into 64bit. after installed my application on 64bit machine, my application registry values are gone into under wow6432 node as HKLM\SOFTWARE\Wow6432Node(myapplication) but my application trying to read those values from HKLM\SOFTWARE(myapplication). could you please where is the wrong. what shall i do this case.
thanks,
KAM
Your install is 32-bit and it automatically writes to Wow6432Node on 64-bit system. You need to disable registry reflection or to directly write to 64-bit registry key (I don't know how to do that on install shield, but you should find it in the manual, search for Registry Reflection).
See my answer here on how to explicitly read the 32 or 64-bit 'views' of the registry. You have a few options depending on your situation - you can make the 32-bit version read the 64-bit view (so it'll use HKLM/Software. This means that you won't need to change the installer) or you could force the 64-bit version read the 32-bit view (this may be better if you need different options in the 32 and 64-bit versions)