У меня есть два отдельных приложения JavaFX, которые я развертываю как родной Windows exe, используя метод, описанный here, но с параметром установки установлено значение true, чтобы он устанавливался на диск C:, а не на данные приложения , По какой-то причине оба приложения устанавливаются в один и тот же каталог, и оба используют один и тот же файл для удаления, что создает для меня серьезную проблему. Каталог, в который он устанавливается, - это какая-либо программа, установленная в первую очередь. Например, если я устанавливаю Program1 сначала, они оба устанавливаются в C:/Program Files/Program1. Если Program2 установлен, они оба устанавливаются в C:/Program Files/Program2. Они оба имеют свои каталоги по умолчанию, установленные в файле установки Inno, и они разные. Кто-нибудь когда-либо сталкивался с этой проблемой раньше? Благодаря!Приложения Java FX в одном и том же каталоге
Вот файл Setup Inno, который генерируется из муравьев строить по программе 1
;This file will be executed next to the application bundle image
;I.e. current directory will contain folder Program1 with application files
[Setup]
AppId={{fxApplication}}
AppName=Program1
AppVersion=1.4.0
AppVerName=Program1 1.4.0
AppPublisher=My Company
AppComments=Program1FX
AppCopyright=Copyright (C) 2015
;AppPublisherURL=http://java.com/
;AppSupportURL=http://java.com/
;AppUpdatesURL=http://java.com/
DefaultDirName={pf}\Program1
DisableStartupPrompt=Yes
DisableDirPage=Yes
DisableProgramGroupPage=Yes
DisableReadyPage=Yes
DisableFinishedPage=Yes
DisableWelcomePage=Yes
DefaultGroupName=My Company
;Optional License
LicenseFile=
;WinXP or above
MinVersion=0,5.1
OutputBaseFilename=Program1-1.4.0
Compression=lzma
SolidCompression=yes
PrivilegesRequired=admin
SetupIconFile=Program1\Program1.ico
UninstallDisplayIcon={app}\Program1.ico
UninstallDisplayName=Program1
WizardImageStretch=No
WizardSmallImageFile=Program1-setup-icon.bmp
ArchitecturesInstallIn64BitMode=x64
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Files]
Source: "Program1\Program1.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "Program1\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
[Icons]
Name: "{group}\Program1"; Filename: "{app}\Program1.exe"; IconFilename: "{app}\Program1.ico"; Check: returnTrue()
Name: "{commondesktop}\Program1"; Filename: "{app}\Program1.exe"; IconFilename: "{app}\Program1.ico"; Check: returnTrue()
[Run]
Filename: "{app}\Program1.exe"; Parameters: "-Xappcds:generatecache"; Check: returnFalse()
Filename: "{app}\Program1.exe"; Description: "{cm:LaunchProgram,Program1}"; Flags: nowait postinstall skipifsilent; Check: returnTrue()
Filename: "{app}\Program1.exe"; Parameters: "-install -svcName ""Program1"" -svcDesc ""Program1"" -mainExe ""Program1.exe"" "; Check: returnFalse()
[UninstallRun]
Filename: "{app}\Program1.exe "; Parameters: "-uninstall -svcName Program1 -stopOnUninstall"; Check: returnFalse()
[Code]
function returnTrue(): Boolean;
begin
Result := True;
end;
function returnFalse(): Boolean;
begin
Result := False;
end;
function InitializeSetup(): Boolean;
begin
// Possible future improvements:
// if version less or same => just launch app
// if upgrade => check if same app is running and wait for it to exit
// Add pack200/unpack200 support?
Result := True;
end;
и Программа 2
;This file will be executed next to the application bundle image
;I.e. current directory will contain folder Program2 with application files
[Setup]
AppId={{fxApplication}}
AppName=Program2
AppVersion=1.3.1
AppVerName=Program2 1.3.1
AppPublisher=My Company
AppComments=Program2
AppCopyright=Copyright (C) 2015
;AppPublisherURL=http://java.com/
;AppSupportURL=http://java.com/
;AppUpdatesURL=http://java.com/
DefaultDirName={pf}\Program2
DisableStartupPrompt=Yes
DisableDirPage=Yes
DisableProgramGroupPage=Yes
DisableReadyPage=Yes
DisableFinishedPage=Yes
DisableWelcomePage=Yes
DefaultGroupName=My Company
;Optional License
LicenseFile=
;WinXP or above
MinVersion=0,5.1
OutputBaseFilename=Program2-1.3.1
Compression=lzma
SolidCompression=yes
PrivilegesRequired=admin
SetupIconFile=Program2\Program2.ico
UninstallDisplayIcon={app}\Program2.ico
UninstallDisplayName=Program2
WizardImageStretch=No
WizardSmallImageFile=Program2-setup-icon.bmp
ArchitecturesInstallIn64BitMode=x64
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Files]
Source: "Program2\Program2.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "Program2\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
[Icons]
Name: "{group}\Program2"; Filename: "{app}\Program2.exe"; IconFilename: "{app}\Program2.ico"; Check: returnTrue()
Name: "{commondesktop}\Program2"; Filename: "{app}\Program2.exe"; IconFilename: "{app}\Program2.ico"; Check: returnTrue()
[Run]
Filename: "{app}\Program2.exe"; Parameters: "-Xappcds:generatecache"; Check: returnFalse()
Filename: "{app}\Program2.exe"; Description: "{cm:LaunchProgram,Program2}"; Flags: nowait postinstall skipifsilent; Check: returnTrue()
Filename: "{app}\Program2.exe"; Parameters: "-install -svcName ""Program2"" -svcDesc ""Program2"" -mainExe ""Program2.exe"" "; Check: returnFalse()
[UninstallRun]
Filename: "{app}\Program2.exe "; Parameters: "-uninstall -svcName Program2 -stopOnUninstall"; Check: returnFalse()
[Code]
function returnTrue(): Boolean;
begin
Result := True;
end;
function returnFalse(): Boolean;
begin
Result := False;
end;
function InitializeSetup(): Boolean;
begin
// Possible future improvements:
// if version less or same => just launch app
// if upgrade => check if same app is running and wait for it to exit
// Add pack200/unpack200 support?
Result := True;
end;
Благодаря Заку, это работало отлично для меня !! У меня была та же проблема и она была решена с использованием того же идентификатора для атрибутов ** name ** AND ** id **, потому что в большинстве случаев ** id ** и ** name ** имеют одинаковое значение. Существуют некоторые исключения для инсталляторов InnoSetup (.exe), которые поясняются [здесь] (http://www.jrsoftware.org/ishelp/index.php?topic=setup_appid). Вы даже можете использовать свойство ant, если хотите сделать имя, настраиваемое в файле свойств. –