I am trying to build a 32/64-bit installer in one. The only thing that differs on a 32-bit and 64-bit machine is the call to RegAsm.exe. For a 64-bit machine, this code should look at a 64-bit infrastructure, and for a 32-bit machine - a standard one.
32bit: "C: \ Windows \ microsoft.net \ framework" 64bit: "C: \ Windows \ microsoft.net \ Framework64";
I have a package setup to run installation actions. For my 64-bit action, I have a check option for IsWin64.
File Name: {dotnet4064} \ Regasm.exe; Parameters: "" mydll.dll "" / codebase "; WorkingDir: {app}; StatusMsg:" Add-in registration "; Flags: RunHidden; Check: IsWin64;
Multiple log file lines before error
2012-12-05 14:58:53.233 Installing the file. 2012-12-05 14:58:53.281 Successfully installed the file. 2012-12-05 14:58:53.281 -- Icon entry -- 2012-12-05 14:58:53.281 Filename: C:\Documents and Settings\All Users\Start Menu\Programs\myprogram\my program\Uninstall myprogram.lnk 2012-12-05 14:58:53.281 Creating directory: C:\Documents and Settings\All Users\Start Menu\Programs\myprogram\my program 2012-12-05 14:58:53.483 -- Icon entry -- 2012-12-05 14:58:53.483 Filename: C:\Documents and Settings\All Users\Start Menu\Programs\myprogram\my program\myprogram.lnk 2012-12-05 14:58:54.224 -- Icon entry -- 2012-12-05 14:58:54.224 Filename: C:\Documents and Settings\All Users\Desktop\myprogram.lnk 2012-12-05 14:58:54.281 Fatal exception during installation process (Exception): Internal error: Cannot run files in 64-bit locations on this version of Windows. 2012-12-05 14:58:54.281 Exception message: 2012-12-05 14:58:54.281 Message box (OK): Internal error: Cannot run files in 64-bit locations on this version of Windows. 2012-12-05 14:58:54.926 User chose OK. 2012-12-05 14:58:54.926 Message box (OK): Setup was not completed. Please correct the problem and run Setup again. 2012-12-05 14:59:00.222 User chose OK. 2012-12-05 14:59:00.222 Rolling back changes.
Everything works fine on a 64-bit machine. On a 32 bit machine, I get an error message:
Internal error: Unable to run files in 64-bit places on this version of Windows
I went through all the help documentation and Google and canβt block the reason why this is happening. Any help is appreciated.
[Run] Filename: "{dotnet40}\Regasm.exe"; Parameters: "My.TaskPane.dll"; WorkingDir: "{app}"; Flags: runhidden; StatusMsg: "Registering MyTaskPane Add-In" Filename: "{dotnet4064}\Regasm.exe"; Parameters: "My.TaskPane.dll"; WorkingDir: "{app}"; Flags: runhidden; StatusMsg: "Registering My TaskPane Add-In"; Check: IsWin64 Filename: "{dotnet40}\Regasm.exe"; Parameters: "My.TaskPane.dll /codebase"; WorkingDir: "{app}"; Flags: runhidden; StatusMsg: "Registering My TaskPane Add-In" Filename: "{dotnet4064}\Regasm.exe"; Parameters: "My.TaskPane.dll /codebase"; WorkingDir: "{app}"; Flags: runhidden; StatusMsg: "Registering My TaskPane Add-In"; Check: IsWin64 Filename: "{app}\My Software Suite.exe"; Parameters: "/register"; WorkingDir: "{app}"; Flags: PostInstall; Description: "Register the My Software Suite"
I solved this by adding: ArchitecturesInstallIn64BitMode = x64, and then using Check: Is64BitInstallMode
source share