chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,314 @@
|
||||
; Modified from https://github.com/DomGries/InnoDependencyInstaller
|
||||
|
||||
|
||||
|
||||
[Code]
|
||||
// types and variables
|
||||
type
|
||||
TDependency_Entry = record
|
||||
Filename: String;
|
||||
Parameters: String;
|
||||
Title: String;
|
||||
URL: String;
|
||||
Checksum: String;
|
||||
ForceSuccess: Boolean;
|
||||
RestartAfter: Boolean;
|
||||
end;
|
||||
|
||||
var
|
||||
Dependency_Memo: String;
|
||||
Dependency_List: array of TDependency_Entry;
|
||||
Dependency_NeedRestart, Dependency_ForceX86: Boolean;
|
||||
Dependency_DownloadPage: TDownloadWizardPage;
|
||||
|
||||
procedure Dependency_Add(const Filename, Parameters, Title, URL, Checksum: String; const ForceSuccess, RestartAfter: Boolean);
|
||||
var
|
||||
Dependency: TDependency_Entry;
|
||||
DependencyCount: Integer;
|
||||
begin
|
||||
Dependency_Memo := Dependency_Memo + #13#10 + '%1' + Title;
|
||||
|
||||
Dependency.Filename := Filename;
|
||||
Dependency.Parameters := Parameters;
|
||||
Dependency.Title := Title;
|
||||
|
||||
if FileExists(ExpandConstant('{tmp}{\}') + Filename) then begin
|
||||
Dependency.URL := '';
|
||||
end else begin
|
||||
Dependency.URL := URL;
|
||||
end;
|
||||
|
||||
Dependency.Checksum := Checksum;
|
||||
Dependency.ForceSuccess := ForceSuccess;
|
||||
Dependency.RestartAfter := RestartAfter;
|
||||
|
||||
DependencyCount := GetArrayLength(Dependency_List);
|
||||
SetArrayLength(Dependency_List, DependencyCount + 1);
|
||||
Dependency_List[DependencyCount] := Dependency;
|
||||
end;
|
||||
|
||||
<event('InitializeWizard')>
|
||||
procedure Dependency_Internal1;
|
||||
begin
|
||||
Dependency_DownloadPage := CreateDownloadPage(SetupMessage(msgWizardPreparing), SetupMessage(msgPreparingDesc), nil);
|
||||
end;
|
||||
|
||||
<event('PrepareToInstall')>
|
||||
function Dependency_Internal2(var NeedsRestart: Boolean): String;
|
||||
var
|
||||
DependencyCount, DependencyIndex, ResultCode: Integer;
|
||||
Retry: Boolean;
|
||||
TempValue: String;
|
||||
begin
|
||||
DependencyCount := GetArrayLength(Dependency_List);
|
||||
|
||||
if DependencyCount > 0 then begin
|
||||
Dependency_DownloadPage.Show;
|
||||
|
||||
for DependencyIndex := 0 to DependencyCount - 1 do begin
|
||||
if Dependency_List[DependencyIndex].URL <> '' then begin
|
||||
Dependency_DownloadPage.Clear;
|
||||
Dependency_DownloadPage.Add(Dependency_List[DependencyIndex].URL, Dependency_List[DependencyIndex].Filename, Dependency_List[DependencyIndex].Checksum);
|
||||
|
||||
Retry := True;
|
||||
while Retry do begin
|
||||
Retry := False;
|
||||
|
||||
try
|
||||
Dependency_DownloadPage.Download;
|
||||
except
|
||||
if Dependency_DownloadPage.AbortedByUser then begin
|
||||
Result := Dependency_List[DependencyIndex].Title;
|
||||
DependencyIndex := DependencyCount;
|
||||
end else begin
|
||||
case SuppressibleMsgBox(AddPeriod(GetExceptionMessage), mbError, MB_ABORTRETRYIGNORE, IDIGNORE) of
|
||||
IDABORT: begin
|
||||
Result := Dependency_List[DependencyIndex].Title;
|
||||
DependencyIndex := DependencyCount;
|
||||
end;
|
||||
IDRETRY: begin
|
||||
Retry := True;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
if Result = '' then begin
|
||||
for DependencyIndex := 0 to DependencyCount - 1 do begin
|
||||
Dependency_DownloadPage.SetText(Dependency_List[DependencyIndex].Title, '');
|
||||
Dependency_DownloadPage.SetProgress(DependencyIndex + 1, DependencyCount + 1);
|
||||
|
||||
while True do begin
|
||||
ResultCode := 0;
|
||||
if ShellExec('', ExpandConstant('{tmp}{\}') + Dependency_List[DependencyIndex].Filename, Dependency_List[DependencyIndex].Parameters, '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) then begin
|
||||
if Dependency_List[DependencyIndex].RestartAfter then begin
|
||||
if DependencyIndex = DependencyCount - 1 then begin
|
||||
Dependency_NeedRestart := True;
|
||||
end else begin
|
||||
NeedsRestart := True;
|
||||
Result := Dependency_List[DependencyIndex].Title;
|
||||
end;
|
||||
break;
|
||||
end else if (ResultCode = 0) or Dependency_List[DependencyIndex].ForceSuccess then begin // ERROR_SUCCESS (0)
|
||||
break;
|
||||
end else if ResultCode = 1641 then begin // ERROR_SUCCESS_REBOOT_INITIATED (1641)
|
||||
NeedsRestart := True;
|
||||
Result := Dependency_List[DependencyIndex].Title;
|
||||
break;
|
||||
end else if ResultCode = 3010 then begin // ERROR_SUCCESS_REBOOT_REQUIRED (3010)
|
||||
Dependency_NeedRestart := True;
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
|
||||
case SuppressibleMsgBox(FmtMessage(SetupMessage(msgErrorFunctionFailed), [Dependency_List[DependencyIndex].Title, IntToStr(ResultCode)]), mbError, MB_ABORTRETRYIGNORE, IDIGNORE) of
|
||||
IDABORT: begin
|
||||
Result := Dependency_List[DependencyIndex].Title;
|
||||
break;
|
||||
end;
|
||||
IDIGNORE: begin
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
if Result <> '' then begin
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
|
||||
if NeedsRestart then begin
|
||||
TempValue := '"' + ExpandConstant('{srcexe}') + '" /restart=1 /LANG="' + ExpandConstant('{language}') + '" /DIR="' + WizardDirValue + '" /GROUP="' + WizardGroupValue + '" /TYPE="' + WizardSetupType(False) + '" /COMPONENTS="' + WizardSelectedComponents(False) + '" /TASKS="' + WizardSelectedTasks(False) + '"';
|
||||
if WizardNoIcons then begin
|
||||
TempValue := TempValue + ' /NOICONS';
|
||||
end;
|
||||
RegWriteStringValue(HKA, 'SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce', '{#SetupSetting("AppName")}', TempValue);
|
||||
end;
|
||||
end;
|
||||
|
||||
Dependency_DownloadPage.Hide;
|
||||
end;
|
||||
end;
|
||||
|
||||
<event('UpdateReadyMemo')>
|
||||
function Dependency_Internal3(const Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;
|
||||
begin
|
||||
Result := '';
|
||||
if MemoUserInfoInfo <> '' then begin
|
||||
Result := Result + MemoUserInfoInfo + Newline + NewLine;
|
||||
end;
|
||||
if MemoDirInfo <> '' then begin
|
||||
Result := Result + MemoDirInfo + Newline + NewLine;
|
||||
end;
|
||||
if MemoTypeInfo <> '' then begin
|
||||
Result := Result + MemoTypeInfo + Newline + NewLine;
|
||||
end;
|
||||
if MemoComponentsInfo <> '' then begin
|
||||
Result := Result + MemoComponentsInfo + Newline + NewLine;
|
||||
end;
|
||||
if MemoGroupInfo <> '' then begin
|
||||
Result := Result + MemoGroupInfo + Newline + NewLine;
|
||||
end;
|
||||
if MemoTasksInfo <> '' then begin
|
||||
Result := Result + MemoTasksInfo;
|
||||
end;
|
||||
|
||||
if Dependency_Memo <> '' then begin
|
||||
if MemoTasksInfo = '' then begin
|
||||
Result := Result + SetupMessage(msgReadyMemoTasks);
|
||||
end;
|
||||
Result := Result + FmtMessage(Dependency_Memo, [Space]);
|
||||
end;
|
||||
end;
|
||||
|
||||
<event('NeedRestart')>
|
||||
function Dependency_Internal4: Boolean;
|
||||
begin
|
||||
Result := Dependency_NeedRestart;
|
||||
end;
|
||||
|
||||
function Dependency_IsX64: Boolean;
|
||||
begin
|
||||
Result := not Dependency_ForceX86 and Is64BitInstallMode;
|
||||
end;
|
||||
|
||||
function Dependency_String(const x86, x64: String): String;
|
||||
begin
|
||||
if Dependency_IsX64 then begin
|
||||
Result := x64;
|
||||
end else begin
|
||||
Result := x86;
|
||||
end;
|
||||
end;
|
||||
|
||||
function Dependency_ArchSuffix: String;
|
||||
begin
|
||||
Result := Dependency_String('_x64', '_x64');
|
||||
end;
|
||||
|
||||
function Dependency_ArchTitle: String;
|
||||
begin
|
||||
Result := Dependency_String(' (x86)', ' (x64)');
|
||||
end;
|
||||
|
||||
function Dependency_IsNetCoreInstalled(const Version: String): Boolean;
|
||||
var
|
||||
ResultCode: Integer;
|
||||
begin
|
||||
// source code: https://github.com/dotnet/deployment-tools/tree/main/src/clickonce/native/projects/NetCoreCheck
|
||||
if not FileExists(ExpandConstant('{tmp}{\}') + 'netcorecheck' + Dependency_ArchSuffix + '.exe') then begin
|
||||
ExtractTemporaryFile('netcorecheck' + Dependency_ArchSuffix + '.exe');
|
||||
end;
|
||||
Result := ShellExec('', ExpandConstant('{tmp}{\}') + 'netcorecheck' + Dependency_ArchSuffix + '.exe', Version, '', SW_HIDE, ewWaitUntilTerminated, ResultCode) and (ResultCode = 0);
|
||||
end;
|
||||
|
||||
function Dependency_IsVCRuntimeInstalled(const Arch: String; const Major, Minor, Bld: Cardinal): Boolean;
|
||||
var
|
||||
InstalledFlag, InstMajor, InstMinor, InstBld: Cardinal;
|
||||
Key: String;
|
||||
begin
|
||||
// Canonical VC++ runtime detection per Microsoft docs:
|
||||
// https://learn.microsoft.com/en-us/cpp/windows/redistributing-visual-cpp-files
|
||||
// The redistributable installer writes these values to both registry views,
|
||||
// so a plain HKLM read is correct from Inno Setup's 32-bit process.
|
||||
Key := 'SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\' + Arch;
|
||||
Result :=
|
||||
RegQueryDWordValue(HKLM, Key, 'Installed', InstalledFlag) and (InstalledFlag = 1) and
|
||||
RegQueryDWordValue(HKLM, Key, 'Major', InstMajor) and
|
||||
RegQueryDWordValue(HKLM, Key, 'Minor', InstMinor) and
|
||||
RegQueryDWordValue(HKLM, Key, 'Bld', InstBld) and
|
||||
((InstMajor > Major) or
|
||||
((InstMajor = Major) and (InstMinor > Minor)) or
|
||||
((InstMajor = Major) and (InstMinor = Minor) and (InstBld >= Bld)));
|
||||
end;
|
||||
|
||||
procedure Dependency_AddVC2015To2022;
|
||||
var
|
||||
Arch, Url: String;
|
||||
MinMajor, MinMinor, MinBld: Cardinal;
|
||||
begin
|
||||
// https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist
|
||||
MinMajor := 14;
|
||||
MinMinor := 30;
|
||||
MinBld := 30704;
|
||||
|
||||
if IsARM64 then begin
|
||||
Arch := 'arm64';
|
||||
Url := 'https://aka.ms/vc14/vc_redist.arm64.exe';
|
||||
end else begin
|
||||
Arch := 'x64';
|
||||
Url := 'https://aka.ms/vc14/vc_redist.x64.exe';
|
||||
end;
|
||||
|
||||
// Primary: registry-based detection (Microsoft's documented method, stable
|
||||
// across installer builds). Fallback: MSI UpgradeCode lookup for x64 only
|
||||
// (the x64 UpgradeCode {36F68A90-...} is verified; keeping a fallback helps
|
||||
// on unusual install states). See issue #4596 for the regression this
|
||||
// replaces, where a ProductCode was mistakenly used with IsMsiProductInstalled.
|
||||
if Dependency_IsVCRuntimeInstalled(Arch, MinMajor, MinMinor, MinBld) then Exit;
|
||||
if (Arch = 'x64') and IsMsiProductInstalled('{36F68A90-239C-34DF-B58C-64B30153CE35}',
|
||||
PackVersionComponents(MinMajor, MinMinor, MinBld, 0)) then Exit;
|
||||
|
||||
Dependency_Add('vcredist2022_' + Arch + '.exe',
|
||||
'/passive /norestart',
|
||||
'Visual C++ 2015-2022 Redistributable (' + Arch + ')',
|
||||
Url,
|
||||
'', False, False);
|
||||
end;
|
||||
|
||||
|
||||
procedure Dependency_AddWebView2;
|
||||
var
|
||||
WebView2URL, WebView2Title: String;
|
||||
begin
|
||||
// https://developer.microsoft.com/en-us/microsoft-edge/webview2
|
||||
if not RegValueExists(HKLM, Dependency_String('SOFTWARE', 'SOFTWARE\WOW6432Node') + '\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}', 'pv') then begin
|
||||
if IsARM64 then begin
|
||||
WebView2URL := 'https://go.microsoft.com/fwlink/?linkid=2099616';
|
||||
WebView2Title := 'WebView2 Runtime (ARM64)';
|
||||
end else begin
|
||||
WebView2URL := 'https://go.microsoft.com/fwlink/?linkid=2124701';
|
||||
WebView2Title := 'WebView2 Runtime (x64)';
|
||||
end;
|
||||
Dependency_Add('MicrosoftEdgeWebview2Setup.exe',
|
||||
'/silent /install',
|
||||
WebView2Title,
|
||||
WebView2URL,
|
||||
'', False, False);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
[Files]
|
||||
#ifdef Dependency_Path_NetCoreCheck
|
||||
; download netcorecheck_x64.exe: https://www.nuget.org/packages/Microsoft.NET.Tools.NETCoreCheck.x64
|
||||
Source: "{#Dependency_Path_NetCoreCheck}netcorecheck_x64.exe"; Flags: dontcopy noencryption
|
||||
#endif
|
||||
|
||||
#ifdef Dependency_Path_DirectX
|
||||
Source: "{#Dependency_Path_DirectX}dxwebsetup.exe"; Flags: dontcopy noencryption
|
||||
#endif
|
||||
@@ -0,0 +1,218 @@
|
||||
[CustomMessages]
|
||||
; Armenian, Brazilian Portuguese, Catalan, Corsican, Czech, Danish, Dutch, Finnish, French, German, Hebrew, Icelandic, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Russian, Slovenian, Spanish, Turkish, Ukrainian
|
||||
|
||||
; English
|
||||
InstallType=Installation type
|
||||
ShCuts=Shortcuts
|
||||
PortInst=Perform a portable installation
|
||||
RegInst=Perform a regular installation
|
||||
RegStartMmenuIcon=Create a shortcut on the Start menu
|
||||
RegDesktopIcon=Create a shortcut on the Desktop
|
||||
PackageBundleName=UniGetUI package bundle
|
||||
|
||||
; Armenian
|
||||
Armenian.InstallType=Տեղադրման տեսակը
|
||||
Armenian.ShCuts=Դյուրանցումներ
|
||||
Armenian.PortInst=Կատարել շարժական տեղադրում
|
||||
Armenian.RegInst=Կատարել սովորական տեղադրում
|
||||
Armenian.RegStartMmenuIcon=Ստեղծեք դյուրանցում Start ընտրացանկում
|
||||
Armenian.RegDesktopIcon=Ստեղծեք դյուրանցում աշխատասեղանի վրա
|
||||
Armenian.PackageBundleName=UniGetUI փաթեթի փաթեթ
|
||||
|
||||
; BrazilianPortuguese
|
||||
BrazilianPortuguese.InstallType=Tipo de instalação
|
||||
BrazilianPortuguese.ShCuts=Atalhos
|
||||
BrazilianPortuguese.PortInst=Realizar uma instalação portátil
|
||||
BrazilianPortuguese.RegInst=Realizar uma instalação regular
|
||||
BrazilianPortuguese.RegStartMmenuIcon=Criar um atalho no menu Iniciar
|
||||
BrazilianPortuguese.RegDesktopIcon=Criar um atalho na área de trabalh
|
||||
BrazilianPortuguese.PackageBundleName=Coleção de pacotes UniGetUI
|
||||
|
||||
; Catalan
|
||||
Catalan.InstallType=Tipus d'instal·lació
|
||||
Catalan.ShCuts=Dreceres
|
||||
Catalan.PortInst=Feu una instal·lació portàtil
|
||||
Catalan.RegInst=Feu una instal·lació regular
|
||||
Catalan.RegStartMmenuIcon=Creeu una drecera al menú Inici
|
||||
Catalan.RegDesktopIcon=Creeu una drecera a l'Escriptori
|
||||
Catalan.PackageBundleName=Col·lecció de paquets de l'UniGetUI
|
||||
|
||||
; Corsican
|
||||
Corsican.InstallType=Tipu d'installazione
|
||||
Corsican.ShCuts=Scorciatoie
|
||||
Corsican.PortInst=Eseguite una installazione portable
|
||||
Corsican.RegInst=Eseguite una installazione regulare
|
||||
Corsican.RegStartMmenuIcon=Create una scorciatoia nant'à u menu Start
|
||||
Corsican.RegDesktopIcon=Create una scorciatoia nant'à u Desktop
|
||||
Corsican.PackageBundleName=Raccolta di pacchetti UniGetUI
|
||||
|
||||
; Czech
|
||||
Czech.InstallType=Typ instalace
|
||||
Czech.ShCuts=Zkratky
|
||||
Czech.PortInst=Proveďte přenosnou instalaci
|
||||
Czech.RegInst=Proveďte běžnou instalaci
|
||||
Czech.RegStartMmenuIcon=Vytvořte zástupce v nabídce Start
|
||||
Czech.RegDesktopIcon=Vytvořte zástupce na ploše
|
||||
Czech.PackageBundleName=Kolekce balíčků UniGetUI
|
||||
|
||||
; Danish
|
||||
Danish.InstallType=Installationstype
|
||||
Danish.ShCuts=Genveje
|
||||
Danish.PortInst=Udfør en bærbar installation
|
||||
Danish.RegInst=Udfør en almindelig installation
|
||||
Danish.RegStartMmenuIcon=Opret en genvej på Start-menuen
|
||||
Danish.RegDesktopIcon=Opret en genvej på skrivebordet
|
||||
Danish.PackageBundleName=Samling af UniGetUI-pakker
|
||||
|
||||
; Dutch
|
||||
Dutch.InstallType=Installatietype
|
||||
Dutch.ShCuts=Snelkoppelingen
|
||||
Dutch.PortInst=Voer een draagbare installatie uit
|
||||
Dutch.RegInst=Voer een normale installatie uit
|
||||
Dutch.RegStartMmenuIcon=Maak een snelkoppeling in het Startmenu
|
||||
Dutch.RegDesktopIcon=Maak een snelkoppeling op het bureaublad
|
||||
Dutch.PackageBundleName=Verzameling UniGetUI-pakketten
|
||||
|
||||
; Finnish
|
||||
Finnish.InstallType=Asennustyyppi
|
||||
Finnish.ShCuts=Oikopolut
|
||||
Finnish.PortInst=Suorita kannettava asennus
|
||||
Finnish.RegInst=Suorita tavallinen asennus
|
||||
Finnish.RegStartMmenuIcon=Luo pikakuvake Käynnistä-valikkoon
|
||||
Finnish.RegDesktopIcon=Luo pikakuvake työpöydälle
|
||||
Finnish.PackageBundleName=Kokoelma UniGetUI-paketteja
|
||||
|
||||
; French
|
||||
French.InstallType=Type d'installation
|
||||
French.ShCuts=Raccourcis
|
||||
French.PortInst=Effectuer une installation portable
|
||||
French.RegInst=Effectuer une installation normale
|
||||
French.RegStartMmenuIcon=Créer un raccourci dans le menu Démarrer
|
||||
French.RegDesktopIcon=Créer un raccourci sur le bureau
|
||||
French.PackageBundleName=Collection de packages UniGetUI
|
||||
|
||||
; German
|
||||
German.InstallType=Installationstyp
|
||||
German.ShCuts=Verknüpfungen
|
||||
German.PortInst=Führe eine portable Installation durch
|
||||
German.RegInst=Führe eine normale Installation durch
|
||||
German.RegStartMmenuIcon=Erstelle eine Verknüpfung im Startmenü
|
||||
German.RegDesktopIcon=Erstelle eine Verknüpfung auf dem Desktop
|
||||
German.PackageBundleName=Sammlung von UniGetUI-Paketen
|
||||
|
||||
; Hebrew
|
||||
Hebrew.InstallType=סוג התקנה
|
||||
Hebrew.ShCuts=קיצורי דרך
|
||||
Hebrew.PortInst=בצע התקנה ניידת
|
||||
Hebrew.RegInst=בצע התקנה רגילה
|
||||
Hebrew.RegStartMmenuIcon=צור קיצור דרך בתפריט התחל
|
||||
Hebrew.RegDesktopIcon=צור קיצור דרך בשולחן העבודה
|
||||
Hebrew.PackageBundleName=אוסף חבילות UniGetUI
|
||||
|
||||
; Icelandic
|
||||
;Icelandic.InstallType=Uppsetningargerð
|
||||
;Icelandic.ShCuts=Flýtivísar
|
||||
;Icelandic.PortInst=Framkvæma færanlega uppsetningu
|
||||
;Icelandic.RegInst=Framkvæma reglulega uppsetningu
|
||||
;Icelandic.RegStartMmenuIcon=Búa til flýtileið á Start valmyndinni
|
||||
;Icelandic.RegDesktopIcon=Búa til flýtileið á skjáborðinu
|
||||
;Icelandic.PackageBundleName=Safn af UniGetUI pakka
|
||||
|
||||
; Italian
|
||||
Italian.InstallType=Tipo di installazione
|
||||
Italian.ShCuts=Collegamenti
|
||||
Italian.PortInst=Esegui installazione portatile
|
||||
Italian.RegInst=Esegui installazione normale
|
||||
Italian.RegStartMmenuIcon=Crea una scorciatoia nel menu Start
|
||||
Italian.RegDesktopIcon=Crea una scorciatoia sul Desktop
|
||||
Italian.PackageBundleName=Raccolta di pacchetti UniGetUI
|
||||
|
||||
; Japanese
|
||||
Japanese.InstallType=インストールの種類
|
||||
Japanese.ShCuts=ショートカット
|
||||
Japanese.PortInst=ポータブル インストールを実行する
|
||||
Japanese.RegInst=通常のインストールを実行します
|
||||
Japanese.RegStartMmenuIcon=スタート メニューにショートカットを作成する
|
||||
Japanese.RegDesktopIcon=デスクトップにショートカットを作成する
|
||||
Japanese.PackageBundleName=UniGetUI パッケージのコレクション
|
||||
|
||||
; Korean
|
||||
Korean.InstallType=설치 유형
|
||||
Korean.ShCuts=바로가기
|
||||
Korean.PortInst=이동식 설치 수행
|
||||
Korean.RegInst=일반 설치 수행
|
||||
Korean.RegStartMmenuIcon=시작 메뉴에 바로가기 만들기
|
||||
Korean.RegDesktopIcon=바탕화면에 바로가기 생성
|
||||
Korean.PackageBundleName=UniGetUI 패키지 컬렉션
|
||||
|
||||
; Norwegian
|
||||
Norwegian.InstallType=Installasjonstype
|
||||
Norwegian.ShCuts=Snarveier
|
||||
Norwegian.PortInst=Utfør en bærbar installasjon
|
||||
Norwegian.RegInst=Utfør en vanlig installasjon
|
||||
Norwegian.RegStartMmenuIcon=Lag en snarvei på Start-menyen
|
||||
Norwegian.RegDesktopIcon=Lag en snarvei på skrivebordet
|
||||
Norwegian.PackageBundleName=Samling av UniGetUI-pakker
|
||||
|
||||
; Polish
|
||||
Polish.InstallType=Typ instalacji
|
||||
Polish.ShCuts=Skróty
|
||||
Polish.PortInst=Przeprowadź instalację przenośną
|
||||
Polish.RegInst=Przeprowadź zwykłą instalację
|
||||
Polish.RegStartMmenuIcon=Utwórz skrót w menu Start
|
||||
Polish.RegDesktopIcon=Utwórz skrót na pulpicie
|
||||
Polish.PackageBundleName=Kolekcja pakietów UniGetUI
|
||||
|
||||
; Portuguese
|
||||
Portuguese.InstallType=Tipo de instalação
|
||||
Portuguese.ShCuts=Atalhos
|
||||
Portuguese.PortInst=Execute uma instalação portátil
|
||||
Portuguese.RegInst=Execute uma instalação regular
|
||||
Portuguese.RegStartMmenuIcon=Criar um atalho no menu Iniciar
|
||||
Portuguese.RegDesktopIcon=Criar um atalho na área de trabalho
|
||||
Portuguese.PackageBundleName=Coleção de pacotes UniGetUI
|
||||
|
||||
; Russian
|
||||
Russian.InstallType=Тип установки
|
||||
Russian.ShCuts=Ярлыки
|
||||
Russian.PortInst=Выполнить переносную установку
|
||||
Russian.RegInst=Выполнить обычную установку
|
||||
Russian.RegStartMmenuIcon=Создать ярлык в меню «Пуск»
|
||||
Russian.RegDesktopIcon=Создать ярлык на рабочем столе
|
||||
Russian.PackageBundleName=
|
||||
|
||||
; Slovenian
|
||||
Slovenian.InstallType=Vrsta namestitve
|
||||
Slovenian.ShCuts=Bližnjice
|
||||
Slovenian.PortInst=Izvedite prenosno namestitev
|
||||
Slovenian.RegInst=Izvedite običajno namestitev
|
||||
Slovenian.RegStartMmenuIcon=Ustvarite bližnjico v meniju Start
|
||||
Slovenian.RegDesktopIcon=Ustvarite bližnjico na namizju
|
||||
Slovenian.PackageBundleName=Коллекция пакетов UniGetUI
|
||||
|
||||
; Spanish
|
||||
Spanish.InstallType=Tipo de instalación
|
||||
Spanish.ShCuts=Atajos
|
||||
Spanish.PortInst=Realizar una instalación portátil
|
||||
Spanish.RegInst=Realizar una instalación regular
|
||||
Spanish.RegStartMmenuIcon=Crear un acceso directo en el menú Inicio
|
||||
Spanish.RegDesktopIcon=Crear un atajo en el escritorio
|
||||
Spanish.PackageBundleName=Coleción de paquetes del UniGetUI
|
||||
|
||||
; Turkish
|
||||
Turkish.InstallType=Yükleme türü
|
||||
Turkish.ShCuts=Kısayollar
|
||||
Turkish.PortInst=Taşınabilir bir kurulum gerçekleştirin
|
||||
Turkish.RegInst=Normal bir kurulum gerçekleştir
|
||||
Turkish.RegStartMmenuIcon=Başlat menüsünde bir kısayol oluştur
|
||||
Turkish.RegDesktopIcon=Masaüstünde bir kısayol oluştur
|
||||
Turkish.PackageBundleName=UniGetUI paketlerinin toplanması
|
||||
|
||||
; Ukrainian
|
||||
Ukrainian.InstallType=Тип інсталяції
|
||||
Ukrainian.ShCuts=Ярлики
|
||||
Ukrainian.PortInst=Виконати переносне встановлення
|
||||
Ukrainian.RegInst=Виконайте звичайну установку
|
||||
Ukrainian.RegStartMmenuIcon=Створити ярлик у меню «Пуск».
|
||||
Ukrainian.RegDesktopIcon=Створити ярлик на робочому столі
|
||||
Ukrainian.PackageBundleName=Колекція пакетів UniGetUI
|
||||
@@ -0,0 +1,25 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.11.35303.130
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "MsiInstallerWrapper", "MsiInstallerWrapper.vdproj", "{EE7E4697-83BE-454A-8188-714D27776721}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Default = Debug|Default
|
||||
Release|Default = Release|Default
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{EE7E4697-83BE-454A-8188-714D27776721}.Debug|Default.ActiveCfg = Debug
|
||||
{EE7E4697-83BE-454A-8188-714D27776721}.Debug|Default.Build.0 = Debug
|
||||
{EE7E4697-83BE-454A-8188-714D27776721}.Release|Default.ActiveCfg = Release
|
||||
{EE7E4697-83BE-454A-8188-714D27776721}.Release|Default.Build.0 = Release
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {FD6F7794-50E5-477C-90BC-D877BB2CDDED}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,712 @@
|
||||
"DeployProject"
|
||||
{
|
||||
"VSVersion" = "3:800"
|
||||
"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"
|
||||
"IsWebType" = "8:FALSE"
|
||||
"ProjectName" = "8:MsiInstallerWrapper"
|
||||
"LanguageId" = "3:1033"
|
||||
"CodePage" = "3:1252"
|
||||
"UILanguageId" = "3:1033"
|
||||
"SccProjectName" = "8:"
|
||||
"SccLocalPath" = "8:"
|
||||
"SccAuxPath" = "8:"
|
||||
"SccProvider" = "8:"
|
||||
"Hierarchy"
|
||||
{
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_A22A7552D1EC4801A0A4D984FCF18331"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
}
|
||||
"Configurations"
|
||||
{
|
||||
"Debug"
|
||||
{
|
||||
"DisplayName" = "8:Debug"
|
||||
"IsDebugOnly" = "11:TRUE"
|
||||
"IsReleaseOnly" = "11:FALSE"
|
||||
"OutputFilename" = "8:UniGetUISetup.msi"
|
||||
"PackageFilesAs" = "3:2"
|
||||
"PackageFileSize" = "3:-2147483648"
|
||||
"CabType" = "3:1"
|
||||
"Compression" = "3:2"
|
||||
"SignOutput" = "11:FALSE"
|
||||
"CertificateFile" = "8:"
|
||||
"PrivateKeyFile" = "8:"
|
||||
"TimeStampServer" = "8:"
|
||||
"InstallerBootstrapper" = "3:2"
|
||||
"BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
|
||||
{
|
||||
"Enabled" = "11:TRUE"
|
||||
"PromptEnabled" = "11:TRUE"
|
||||
"PrerequisitesLocation" = "2:1"
|
||||
"Url" = "8:"
|
||||
"ComponentsUrl" = "8:"
|
||||
"Items"
|
||||
{
|
||||
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.7.2"
|
||||
{
|
||||
"Name" = "8:Microsoft .NET Framework 4.7.2 (x86 and x64)"
|
||||
"ProductCode" = "8:.NETFramework,Version=v4.7.2"
|
||||
}
|
||||
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.EdgeRuntime"
|
||||
{
|
||||
"Name" = "8:Edge WebView runtime"
|
||||
"ProductCode" = "8:Microsoft.EdgeRuntime"
|
||||
}
|
||||
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Visual.C++.14.0.x64"
|
||||
{
|
||||
"Name" = "8:Visual C++ \"14\" Runtime Libraries (x64)"
|
||||
"ProductCode" = "8:Microsoft.Visual.C++.14.0.x64"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"Release"
|
||||
{
|
||||
"DisplayName" = "8:Release"
|
||||
"IsDebugOnly" = "11:FALSE"
|
||||
"IsReleaseOnly" = "11:TRUE"
|
||||
"OutputFilename" = "8:UniGetUISetup.msi"
|
||||
"PackageFilesAs" = "3:2"
|
||||
"PackageFileSize" = "3:-2147483648"
|
||||
"CabType" = "3:1"
|
||||
"Compression" = "3:2"
|
||||
"SignOutput" = "11:FALSE"
|
||||
"CertificateFile" = "8:"
|
||||
"PrivateKeyFile" = "8:"
|
||||
"TimeStampServer" = "8:"
|
||||
"InstallerBootstrapper" = "3:2"
|
||||
"BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
|
||||
{
|
||||
"Enabled" = "11:TRUE"
|
||||
"PromptEnabled" = "11:TRUE"
|
||||
"PrerequisitesLocation" = "2:1"
|
||||
"Url" = "8:"
|
||||
"ComponentsUrl" = "8:"
|
||||
"Items"
|
||||
{
|
||||
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.7.2"
|
||||
{
|
||||
"Name" = "8:Microsoft .NET Framework 4.7.2 (x86 and x64)"
|
||||
"ProductCode" = "8:.NETFramework,Version=v4.7.2"
|
||||
}
|
||||
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.EdgeRuntime"
|
||||
{
|
||||
"Name" = "8:Edge WebView runtime"
|
||||
"ProductCode" = "8:Microsoft.EdgeRuntime"
|
||||
}
|
||||
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Visual.C++.14.0.x64"
|
||||
{
|
||||
"Name" = "8:Visual C++ \"14\" Runtime Libraries (x64)"
|
||||
"ProductCode" = "8:Microsoft.Visual.C++.14.0.x64"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"Deployable"
|
||||
{
|
||||
"CustomAction"
|
||||
{
|
||||
"{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_BF756C7619CC4B4BBFD0B9E127183C43"
|
||||
{
|
||||
"Name" = "8:%ProgramFiles%\\UniGetUI\\unins000.exe"
|
||||
"Condition" = "8:"
|
||||
"Object" = "8:_A22A7552D1EC4801A0A4D984FCF18331"
|
||||
"FileType" = "3:2"
|
||||
"InstallAction" = "3:4"
|
||||
"Arguments" = "8:"
|
||||
"EntryPoint" = "8:"
|
||||
"Sequence" = "3:1"
|
||||
"Identifier" = "8:_F4F70591_F141_4E92_8171_63B1F09EEAE9"
|
||||
"InstallerClass" = "11:FALSE"
|
||||
"CustomActionData" = "8:"
|
||||
}
|
||||
"{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_D68AA58489F8420F9DFCC894A884B2A9"
|
||||
{
|
||||
"Name" = "8:UniGetUI Installer.exe"
|
||||
"Condition" = "8: "
|
||||
"Object" = "8:_A22A7552D1EC4801A0A4D984FCF18331"
|
||||
"FileType" = "3:2"
|
||||
"InstallAction" = "3:1"
|
||||
"Arguments" = "8:/NoAutoStart /ALLUSERS /silent /unattended /NoVCRedist /NoEdgeWebView /NoRestart"
|
||||
"EntryPoint" = "8:"
|
||||
"Sequence" = "3:1"
|
||||
"Identifier" = "8:_AB502465_2086_4B1B_B987_3CD03317278A"
|
||||
"InstallerClass" = "11:FALSE"
|
||||
"CustomActionData" = "8:"
|
||||
"Run64Bit" = "11:FALSE"
|
||||
}
|
||||
}
|
||||
"DefaultFeature"
|
||||
{
|
||||
"Name" = "8:DefaultFeature"
|
||||
"Title" = "8:"
|
||||
"Description" = "8:"
|
||||
}
|
||||
"ExternalPersistence"
|
||||
{
|
||||
"LaunchCondition"
|
||||
{
|
||||
}
|
||||
}
|
||||
"File"
|
||||
{
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A22A7552D1EC4801A0A4D984FCF18331"
|
||||
{
|
||||
"SourcePath" = "8:UniGetUI Installer.exe"
|
||||
"TargetName" = "8:UniGetUI Installer.exe"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_B08F8663334547FDBF4D0DC7F957E164"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
}
|
||||
"FileType"
|
||||
{
|
||||
}
|
||||
"Folder"
|
||||
{
|
||||
"{1525181F-901A-416C-8A58-119130FE478E}:_545FB00BD1854FA8BAF4F057F086F631"
|
||||
{
|
||||
"Name" = "8:#1919"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Property" = "8:ProgramMenuFolder"
|
||||
"Folders"
|
||||
{
|
||||
}
|
||||
}
|
||||
"{3C67513D-01DD-4637-8A68-80971EB9504F}:_A6825CAB25F84B15A64AE00EFD72194C"
|
||||
{
|
||||
"DefaultLocation" = "8:[ProgramFiles64Folder][Manufacturer]\\[ProductName]"
|
||||
"Name" = "8:#1925"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Property" = "8:TARGETDIR"
|
||||
"Folders"
|
||||
{
|
||||
}
|
||||
}
|
||||
"{1525181F-901A-416C-8A58-119130FE478E}:_AA2E6321A69F4A7F974C661BCDEE307F"
|
||||
{
|
||||
"Name" = "8:#1916"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Property" = "8:DesktopFolder"
|
||||
"Folders"
|
||||
{
|
||||
}
|
||||
}
|
||||
"{994432C3-9487-495D-8656-3E829A8DBDDE}:_B08F8663334547FDBF4D0DC7F957E164"
|
||||
{
|
||||
"DefaultLocation" = "8:[WindowsFolder]\\Temp"
|
||||
"Name" = "8:Temp"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Property" = "8:NEWPROPERTY1"
|
||||
"Folders"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
"LaunchCondition"
|
||||
{
|
||||
}
|
||||
"Locator"
|
||||
{
|
||||
}
|
||||
"MsiBootstrapper"
|
||||
{
|
||||
"LangId" = "3:1033"
|
||||
"RequiresElevation" = "11:FALSE"
|
||||
}
|
||||
"Product"
|
||||
{
|
||||
"Name" = "8:Microsoft Visual Studio"
|
||||
"ProductName" = "8:UniGetUI"
|
||||
"ProductCode" = "8:{4896DCDD-E250-45EE-814B-0A6591D1AC00}"
|
||||
"PackageCode" = "8:{03CA204E-D817-4486-B0C3-C2A31BD2EBA1}"
|
||||
"UpgradeCode" = "8:{AA73EEF1-B0C1-4CDD-AA20-97C49E1085DA}"
|
||||
"AspNetVersion" = "8:2.0.50727.0"
|
||||
"RestartWWWService" = "11:FALSE"
|
||||
"RemovePreviousVersions" = "11:FALSE"
|
||||
"DetectNewerInstalledVersion" = "11:FALSE"
|
||||
"InstallAllUsers" = "11:TRUE"
|
||||
"ProductVersion" = "8:0.0.0"
|
||||
"Manufacturer" = "8:Martí Climent"
|
||||
"ARPHELPTELEPHONE" = "8:"
|
||||
"ARPHELPLINK" = "8:"
|
||||
"Title" = "8:UniGetUI"
|
||||
"Subject" = "8:"
|
||||
"ARPCONTACT" = "8:Martí Climent"
|
||||
"Keywords" = "8:"
|
||||
"ARPCOMMENTS" = "8:"
|
||||
"ARPURLINFOABOUT" = "8:"
|
||||
"ARPPRODUCTICON" = "8:"
|
||||
"ARPIconIndex" = "3:0"
|
||||
"SearchPath" = "8:"
|
||||
"UseSystemSearchPath" = "11:TRUE"
|
||||
"TargetPlatform" = "3:1"
|
||||
"PreBuildEvent" = "8:"
|
||||
"PostBuildEvent" = "8:"
|
||||
"RunPostBuildEvent" = "3:0"
|
||||
}
|
||||
"Registry"
|
||||
{
|
||||
"HKLM"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
}
|
||||
"HKCU"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
}
|
||||
"HKCR"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
}
|
||||
"HKU"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
}
|
||||
"HKPU"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
"Sequences"
|
||||
{
|
||||
}
|
||||
"Shortcut"
|
||||
{
|
||||
}
|
||||
"UserInterface"
|
||||
{
|
||||
"{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_3A17EDF809CC4B78986B2FE6EA70BE3E"
|
||||
{
|
||||
"UseDynamicProperties" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdUserInterface.wim"
|
||||
}
|
||||
"{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_3D5999E6267F4C0298B4BCDE7D5F60A6"
|
||||
{
|
||||
"UseDynamicProperties" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdBasicDialogs.wim"
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_4DFD809C69BF4C59A6FD3BA01B0D95DA"
|
||||
{
|
||||
"Name" = "8:#1900"
|
||||
"Sequence" = "3:2"
|
||||
"Attributes" = "3:1"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_1647D66DC7EA4BC4BE95CB839077FD2B"
|
||||
{
|
||||
"Sequence" = "3:200"
|
||||
"DisplayName" = "8:Installation Folder"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminFolderDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:0"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_4452C40CD596425EAB25E35D2B22C4CF"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:Welcome"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminWelcomeDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:0"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"CopyrightWarning"
|
||||
{
|
||||
"Name" = "8:CopyrightWarning"
|
||||
"DisplayName" = "8:#1002"
|
||||
"Description" = "8:#1102"
|
||||
"Type" = "3:3"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:1"
|
||||
"Value" = "8:#1202"
|
||||
"DefaultValue" = "8:#1202"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"Welcome"
|
||||
{
|
||||
"Name" = "8:Welcome"
|
||||
"DisplayName" = "8:#1003"
|
||||
"Description" = "8:#1103"
|
||||
"Type" = "3:3"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:1"
|
||||
"Value" = "8:#1203"
|
||||
"DefaultValue" = "8:#1203"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_56CAF5E0DFAE4764ACD49E3FD559D429"
|
||||
{
|
||||
"Sequence" = "3:300"
|
||||
"DisplayName" = "8:Confirm Installation"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminConfirmDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:0"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_5D2ED95DF08B4D95A7EB3239A89BF4C6"
|
||||
{
|
||||
"Name" = "8:#1902"
|
||||
"Sequence" = "3:2"
|
||||
"Attributes" = "3:3"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_D56A5E75F9834D60948B9D0DD86D2299"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:Finished"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminFinishedDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:0"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_6EF9716EF936459ABC8F22F995A5CF35"
|
||||
{
|
||||
"Name" = "8:#1901"
|
||||
"Sequence" = "3:1"
|
||||
"Attributes" = "3:2"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_2C4A093A2457487DBD623967D4706C28"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:Progress"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdProgressDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:0"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"ShowProgress"
|
||||
{
|
||||
"Name" = "8:ShowProgress"
|
||||
"DisplayName" = "8:#1009"
|
||||
"Description" = "8:#1109"
|
||||
"Type" = "3:5"
|
||||
"ContextData" = "8:1;True=1;False=0"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:0"
|
||||
"Value" = "3:1"
|
||||
"DefaultValue" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_DAA1A949544C4A96986254FF87C0D0D7"
|
||||
{
|
||||
"Name" = "8:#1901"
|
||||
"Sequence" = "3:2"
|
||||
"Attributes" = "3:2"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_597DC589900D4E32B4D7BCB6B9B64387"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:Progress"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminProgressDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:0"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"ShowProgress"
|
||||
{
|
||||
"Name" = "8:ShowProgress"
|
||||
"DisplayName" = "8:#1009"
|
||||
"Description" = "8:#1109"
|
||||
"Type" = "3:5"
|
||||
"ContextData" = "8:1;True=1;False=0"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:0"
|
||||
"Value" = "3:1"
|
||||
"DefaultValue" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_F8B322222EFF4C19B40AB77367AC4879"
|
||||
{
|
||||
"Name" = "8:#1902"
|
||||
"Sequence" = "3:1"
|
||||
"Attributes" = "3:3"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_6BB46602C9BA410C932C78D7334D7518"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:Finished"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdFinishedDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:0"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"UpdateText"
|
||||
{
|
||||
"Name" = "8:UpdateText"
|
||||
"DisplayName" = "8:#1058"
|
||||
"Description" = "8:#1158"
|
||||
"Type" = "3:15"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:1"
|
||||
"Value" = "8:#1258"
|
||||
"DefaultValue" = "8:#1258"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_F90FA3407D9843D38E8B11EAEC8F1DF9"
|
||||
{
|
||||
"Name" = "8:#1900"
|
||||
"Sequence" = "3:1"
|
||||
"Attributes" = "3:1"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_23F910A18BC2402DAFED0320959F69C5"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:Welcome"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdWelcomeDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:0"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"CopyrightWarning"
|
||||
{
|
||||
"Name" = "8:CopyrightWarning"
|
||||
"DisplayName" = "8:#1002"
|
||||
"Description" = "8:#1102"
|
||||
"Type" = "3:3"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:1"
|
||||
"Value" = "8:#1202"
|
||||
"DefaultValue" = "8:#1202"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"Welcome"
|
||||
{
|
||||
"Name" = "8:Welcome"
|
||||
"DisplayName" = "8:#1003"
|
||||
"Description" = "8:#1103"
|
||||
"Type" = "3:3"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:1"
|
||||
"Value" = "8:#1203"
|
||||
"DefaultValue" = "8:#1203"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_285DD2DB675346BEA1981B59FCF526E7"
|
||||
{
|
||||
"Sequence" = "3:300"
|
||||
"DisplayName" = "8:Confirm Installation"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdConfirmDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:0"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_9E00460782B64434AB9AE5C2FDF5F039"
|
||||
{
|
||||
"Sequence" = "3:200"
|
||||
"DisplayName" = "8:Installation Folder"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdFolderDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:0"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"InstallAllUsersVisible"
|
||||
{
|
||||
"Name" = "8:InstallAllUsersVisible"
|
||||
"DisplayName" = "8:#1059"
|
||||
"Description" = "8:#1159"
|
||||
"Type" = "3:5"
|
||||
"ContextData" = "8:1;True=1;False=0"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:0"
|
||||
"Value" = "3:1"
|
||||
"DefaultValue" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"MergeModule"
|
||||
{
|
||||
}
|
||||
"ProjectOutput"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
# How to create a MSI Installer for UniGetUI
|
||||
Sometimes, when deploying software through GPO, msi installers are required. However, UniGetUI does not offer such installers by default.
|
||||
In order to obtain a .msi installer, the following guide must be followed.
|
||||
|
||||
|
||||
> [!Warning]
|
||||
> When using MSI Installers, required dependencies will not be installed automatically. The deployer will need to ensure that the following requirements are met on target machines:
|
||||
> - Microsoft Visual C++ Redistriutable 2015-2022 (x64)
|
||||
> - Microsoft Edge WebView Runtime (x64)
|
||||
|
||||
## Creating a MSI wrapper for the installer
|
||||
1. Install [Visual Studio 2022](https://visualstudio.microsoft.com/es/downloads/) and the [Microsoft Visual Studio Installer Projects 2022 extension](https://marketplace.visualstudio.com/items?itemName=VisualStudioClient.MicrosoftVisualStudio2022InstallerProjects).
|
||||
2. Clone this repository:
|
||||
```
|
||||
git clone https://github.com/Devolutions/UniGetUI
|
||||
```
|
||||
3. Download from [GitHub](https://github.com/Devolutions/UniGetUI/releases/) the installer version you wish to package as MSI.
|
||||
4. Move the downloaded exe installer into `InstallerExtras/MsiCreator`. Ensure that the downloaded installer name is **exactly** `UniGetUI Installer.exe`
|
||||
5. Open the Solution (`MsiInstallerWrapper.sln`) with Visual Studio and build the solution. The files `UniGetUISetup.msi` and `setup.exe` will be created. You may want to delete `setup.exe`, since it will not be used.
|
||||
6. (Optional) Test that the file `UniGetUISetup.msi` installs UniGetUI properly. You should be now ready to go
|
||||
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
Reference in New Issue
Block a user