Inno安装RegAsm.exe错误

时间:2012-12-05 17:48:53

标签: installation inno-setup

我正在尝试一体化构建32/64位安装程序。在32位与64位机器上唯一不同的是对RegAsm.exe的调用。对于64位机器,代码必须查看64位框架,而对于32位,它会查看标准框架。

32位: " C:\ Windows \ microsoft.net \框架" 64位: " C:\ Windows \ microsoft.net \ framework64&#34 ;;

我的软件包设置可以运行安装操作。对于我的64位操作,我有IsWin64的检查启用。

文件名:{dotnet4064} \ Regasm.exe;参数:""" mydll.dll"" /基本代码&#34 ;; WorkingDir:{app}; StatusMsg:"注册加载项&#34 ;;标志:RunHidden;检查:IsWin64;

错误之前的几行日志文件

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.

这一切在64位机器上运行良好。在32位机器上,我收到一个错误:

内部错误:无法在此版本的Windows上的64位位置运行文件

我已经遍布帮助文档和谷歌,无法确定为什么会发生这种情况的原因。任何帮助表示赞赏。

[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"

我通过添加以下内容解决了这个问题:ArchitecturesInstallIn64BitMode = x64然后使用Check:Is64BitInstallMode

1 个答案:

答案 0 :(得分:2)

我通过添加以下内容解决了这个问题:ArchitecturesInstallIn64BitMode = x64然后使用Check:Is64BitInstallMode