использование Desktop App Converter зависает в ожидании завершения процесса установки в изолированной среде

Я пытаюсь преобразовать файл Install.exe, созданный с помощью inno-setup, в файл appx с помощью конвертера настольных приложений от Microsoft. Он каждый раз зависает на «Ожидание завершения процесса установки в изолированной среде».

Команда, которую я использую в Desktop App Converter:

DesktopAppConverter.exe -Installer "C:\Users\Desktop\Output\setup.exe"              -Destination "C:\Users\Desktop\MyProgram\" -PackageName    "MyProgramApps"  -Publisher "Me"
-Version 0.1.4.0 -MakeAppx -Verbose -InstallerArguments  "/VERYSILENT"  -PackagePublisherDisplayName "MyApps" -PackageDisplayName "MyProgram"   -AppDisplayName "MyProgram" -AppId "MyProgram"

Когда я запускаю "MyProgram.exe" из командной строки, используя "/VERYSILENT", он устанавливается полностью автоматически.

Скрипт от Inno-Setup:

#define MyAppName "MyProgram"
#define MyAppVersion "0.1.7"
#define MyAppPublisher "MyApps"
#define MyAppExeName "MyProgram.exe"


[Setup]
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputDir=C:\Users\Desktop\Output
OutputBaseFilename=thirteenth_setup
Compression=lzma
SolidCompression=yes


[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}";        GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked


[Files]

Source: "C:\Users\Desktop\resources\MyProgram.exe"; DestDir: "{app}";  Flags: ignoreversion
#define JavaInstaller "jre-8u151-windows-x64.exe"
Source: "{#JavaInstaller}";  DestDir: "{tmp}"; Flags: dontcopy

[Icons]
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}";  Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; \
Description: "{cm:LaunchProgram,{#StringChange(MyAppName,'&', '&&' )}}"; \
Flags: nowait postinstall skipifsilent



[Code]
const
  REQUIRED_JAVA_VERSION = '1.7';

function isJavaInstalled(): Boolean;
var
  JavaVer : String;
  tmpFileName,
  pathJavaExe: String;
  isGoodJavaVersion,
  isFoundJavaPath: Boolean;
  ResultCode: Integer;
  ExecStdout: AnsiString;
begin

  { *** check in registry }
  { sets variables: }
  {   JavaVer }
  {   isGoodJavaVersion }
  if RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Runtime   Environment',
           'CurrentVersion', JavaVer) AND (JavaVer <> '') OR
     RegQueryStringValue(HKLM64, 'SOFTWARE\JavaSoft\Java Runtime Environment',
           'CurrentVersion', JavaVer) AND (JavaVer <> '') then begin
    Log('* Java Entry in Registry present. Version: ' + JavaVer);
    isGoodJavaVersion := CompareStr(JavaVer, REQUIRED_JAVA_VERSION) >= 0;
  end;

  { add additional checks, for example by searching the PATH, }
  { or by running `java -version` }

  Result := isGoodJavaVersion;
end;
procedure ExtractInstaller;
begin
   ExtractTemporaryFile('{#JavaInstaller}');
end;


[Run]
Filename: "{tmp}\{#JavaInstaller}";  Parameters: "SPONSORS=0"; \
   StatusMsg: "Java Runtime Enviroment not installed on your system.  Installing..."; \
   Check: not isJavaInstalled;  BeforeInstall: ExtractInstaller;

Я думаю, что это как-то связано с:

[Run]
Filename: "{tmp}\{#JavaInstaller}";  Parameters: "SPONSORS=0"; \
   StatusMsg: "Java Runtime Enviroment not installed on your system.  Installing..."; \
   Check: not isJavaInstalled;  BeforeInstall: ExtractInstaller;

потому что, когда я запускаю его без этого оператора «запустить», DAC работает до конца. Но, конечно, тогда установщик Java не запускается.


person Gerry    schedule 12.01.2018    source источник


Ответы (1)


Вы также можете преобразовать пакеты с помощью новой бесплатной версии Express от Advanced Installer, разработанной в партнерство с Microsoft, его целью является дополнение Desktop App Converter.

Например, установка вашего пакета INNO может быть интерактивной, с пользовательским интерфейсом, поэтому вы можете вручную запустить программу установки и завершить установку, таким образом, вы сможете избежать вышеуказанной проблемы.

Он имеет графический интерфейс, который позволяет выполнять расширенную настройку пакетов APPX, не требуя от вас знаний о внутренних схемах пакетов.

Если у вас есть какие-либо вопросы по этому поводу, дайте мне знать, буду рад помочь.

Отказ от ответственности: я работаю в команде, которая создает расширенный установщик.

person Bogdan Mitrache    schedule 29.03.2018