Installer
The installer is built with Inno Setup 6 from installer\LoopbackTranscriber.iss. It uses features from version 6.3 or later, such as x64compatible and the download page.
Building it
- Publish the application to
installer\publish\. - Optional: copy
vc_redist.x64.exeintoinstaller\redist\to bundle it in the installer and not depend on the download. The folder is in.gitignore. - Compile the script with
ISCC.exe installer\LoopbackTranscriber.iss(by default inC:\Program Files (x86)\Inno Setup 6\), or open it in the Inno Setup IDE and click Compile. - The result is
installer\Output\LoopbackTranscriberSetup-<version>.exe.
If publish\LoopbackTranscriber.exe does not exist, compilation stops with an error explaining it.
What the script does
Version
It is read from the published executable with GetVersionComponents:
AppVersionand the file name useMajor.Minor.Revision, for example1.1.0;VersionInfoVersionuses all four components.
That way the version is only defined in Directory.Build.props.
Installation
| Setting | Value |
|---|---|
AppId |
{B6E1F6C4-6E8B-4A6E-9C2A-6C7B9A9E9C3D}. It must not change: it identifies the application for upgrades and uninstalling. |
| Destination | {autopf}\LoopbackTranscriber |
| Architecture | x64 only, installed in 64-bit mode |
| Minimum Windows version | 10.0.22000 (Windows 11) |
| Wizard languages | Spanish, English, Brazilian Portuguese, German and Russian. It only asks for the language when it does not match Windows, and remembers the one from the previous install. |
| Wizard style | modern, with the application icon |
| Compression | solid LZMA2 ultra64 |
AppMutex |
Local\LoopbackTranscriber-B6E1F6C4-…, the same single-instance mutex the application uses. The wizard detects whether it is open and offers to close it (CloseApplications). It does not reopen it by itself. |
SetupMutex |
Prevents two installers from running at once. |
| Shortcuts | Start menu, and an optional desktop shortcut (unchecked) |
| At the end | offers to launch the application |
Files
It copies everything in publish\ except what is not used on Windows x64:
- runtimes for
linux-x64,vulkan\linux-x64,win-arm64andwin-x86; - satellite resources for languages the application does not have:
cs,fr,it,ja,ko,pl,tr,zh-Hans,zh-Hant.
The [InstallDelete] section deletes those same folders if they were left by an earlier installation.
Visual C++ Redistributable
Whisper.net and LLamaSharp need the Visual C++ 2015-2022 x64 runtime.
flowchart TD
A(["On clicking Install"]) --> B{"Is Visual C++<br/>missing?"}
B -->|not missing| Z(["Does nothing"])
B -->|missing| C{"Bundled in<br/>redist\?"}
C -->|yes| E["Extracts it to the<br/>temporary folder"]
C -->|no| D["Downloads it from<br/>aka.ms/vs/17/release/vc_redist.x64.exe"]
D -->|fails| W["Warns and continues<br/>without it"]
D -->|ok| F
E --> F["After copying the files:<br/>vc_redist.x64.exe /install /quiet /norestart"]
class Z,F ok
class W fail
VCRedistMissing() treats it as installed if HKLM64\SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64 has Installed = 1 and Minor ≥ 30.
The exit code of the Visual C++ installer decides what happens next:
| Code | Meaning | Reaction |
|---|---|---|
0 |
Installed | — |
1638 |
An equal or newer version was already installed | — |
1641, 3010 |
A restart is needed | The wizard offers to restart at the end. |
| Other | Error | Shows the code and the link to install it manually. |
Uninstalling
After uninstalling, if %LocalAppData%\LoopbackTranscriber exists, it asks whether to delete the data too: settings, transcripts, models and unprocessed recordings. The default answer is No. If accepted, it deletes that folder and %TEMP%\LoopbackTranscriber. Folders the user changed in Settings are not touched. A silent uninstall neither asks nor deletes anything.