Turn a 32-bit Add-on into a 64-bit add-on without having access to the source-code
Disclaimer: The tip below will not work for all Add-ons. It requires that the add-on is written in .NET and even then this might not work. This post is targeted as a tip for the unfortunate situation of having the end result of an Add-on but not having the source code, but you need it to work in 64-bit B1 Client.
For this Example, I will use SAP’s Screen-painter Add-on (It does actually exist as a 64-bit add-on but let’s imagine it is not.
Step 1: Install the Add-on like normal in a 32-bit environment (business as usual)
Step 2: Go to the Add-on’s installation folder. In Screenpainter’s case that is C:\Program Files (x86)\SAP\SAP Business One\AddOns\BK\Screen Painter
Step 3: Verify that the add-on is written in .NET and is 32-bit (x86). This can be done using a free tool like DotPeek: https://www.jetbrains.com/decompiler/ – Simply open the exe and dlls in the tool
Step 4: Get the CorFlags Tool. https://docs.microsoft.com/en-us/dotnet/framework/tools/corflags-exe-corflags-conversion-tool (You need to install Visual Studio (Free community edition is enough) to get this tool)
Step 5: Remove the x86 Flag in the exe using CorFlags with these two commands
- CorFlags “D:\Screen Painter Copy\BK_ScreenPainter.exe” /32BITREQ-
- CorFlags “D:\Screen Painter Copy\BK_ScreenPainter.exe” /32BITPREF-
Where “D:\Screen Painter Copy\BK_ScreenPainter.exe” is where you have a copy of the 32-bit version of the add-on
(In this sample we only have 1 file but you might have multiple for your add-on)
Step 6: Verify that exe is now AnyCPU (msil). You do that by looking at the modified files in DotPeek again
Step 7: Create the installer and Test. For this, I just use SAP LW installer but you can use any installer technology you like (see other SAP Blogs on how it works)
Again… as mentioned in the top this might end badly, but in a “desperate” situation, give it a try