安装框架作为inno设置中的先决条件时,tmp文件夹中的文件未找到错误

时间:2017-09-05 09:41:53

标签: .net installation frameworks inno-setup

我正在安装dotnet framework 3.5作为先决条件,下面是我的代码。 当我运行此代码时,我得到以下错误。有人可以让我知道为什么" tmp"文件夹无法识别该文件。 的修改 我使用过" AfterInstall"而不是" BeforeInstall"如本示例代码中所述,它工作正常。

Error

当我评估常数时,我发现路径如下。

Path

[Files]
Source: "dotnetfx35setup.exe"; DestDir: {tmp}; Flags: deleteafterinstall; BeforeInstall: Install35Framework; Check: Framework35IsNotInstalled

[Code]
function Framework35IsNotInstalled: Boolean;
begin
 if IsDotNetDetected( 'v3.5'  , 1) then
   begin
      Result := False;
   end else begin
     Result := True;
   end;
end;

procedure Install35Framework;
var
  StatusText: string;
    ResultCode: Integer;
begin
  StatusText := WizardForm.StatusLabel.Caption;
  WizardForm.StatusLabel.Caption := 'Installing .NET framework 3.5...';
  WizardForm.ProgressGauge.Style := npbstMarquee;
  try
    if not Exec(ExpandConstant('{tmp}\dotnetfx35setup.exe'), '/q /norestart', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then
      begin
          { you can interact with the user that the installation failed }
          MsgBox('.NET framework 3.5 installation failed with code: ' + SysErrorMessage(ResultCode) + '.',mbError, MB_OK);
        end;
  finally
    WizardForm.StatusLabel.Caption := StatusText;
    WizardForm.ProgressGauge.Style := npbstNormal;
  end;
end;

1 个答案:

答案 0 :(得分:0)

您正在尝试在安装之前运行安装程序

BeforeInstall: Install35Framework

改为使用AfterInstall