Install and configure runtime components.
Reference → Solution → Deployment → Runtime | Server | Client Types | Container | Redundancy | Security
Runtime Installation (Reference): Deploying FrameworX runtime components for production environments.
Deploying in production? This page covers runtime installation options and startup parameters in detail. For the end-to-end IT workflow (silent install switches, exit codes, service install, monitoring, update, uninstall, automation patterns), see IT Deployment RunBook.
Deployment Scenarios
Windows Runtime Deployment
For Windows-only solutions targeting .NET Framework 4.8:
- Install the complete FrameworX platform (same as Designer)
- No separate runtime-only installer exists
- Configure to use only runtime components in production
- Disable Designer access if needed for security
Multiplatform Runtime Deployment (.NET 8)
For solutions targeting Linux, Docker, or edge devices, or for web-based clients using WebAssembly:
| Option | Components | Size | Use Case |
|---|---|---|---|
| Runtime-Only | TServer.exe, drivers, minimal files | ~100 MB | Production edge devices |
| Full Platform | All files including Designer | ~900 MB+ | Enable remote ClickOnce Designer |
| TWebServices-Only | Communication server only | Minimal | Development/testing |
Silent Install and Exit Codes
The Windows installer is an Inno Setup package. For unattended deployment (SCCM, Intune, Ansible, PowerShell DSC):
Start-Process -FilePath "FrameworX-10.1.5-Setup.exe" `
-ArgumentList "/VERYSILENT", "/SUPPRESSMSGBOXES", "/NORESTART", `
"/LOG=C:\Logs\frameworx-install.log", `
"/DIR=C:\Program Files\Tatsoft\FrameworX" `
-Wait -PassThruInstaller exit codes (Inno Setup standard):
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Setup failed to initialize or user aborted |
| 2 | User cancelled during preparation |
| 5 | Install aborted during copy |
| 3010 | Success — reboot required to complete |
For full automation patterns including SCCM/Intune packaging and rollback, see IT Deployment RunBook.
Solution Startup Configuration
TStartup.exe Overview
TStartup.exe is the executable that runs FrameworX solutions. It supports various parameters for debugging, redundancy, and advanced configuration.
Basic Startup Methods
Manual Start:
- From SolutionCenter: Select solution → Runtime Startup
- From Designer: Runtime → Startup → Run Startup
- Using Windows shortcut with parameters
Windows Service:
- Runs on computer startup
- No user login required
- Configure at Runtime → Startup
Command Line/Batch File:
cd "C:\Program Files\Tatsoft\FrameworX\10.1"
TStartup.exe /Solution:"C:\Solutions\MySolution.tproj"Required Parameters
The minimum parameter needed:
/Solution:"C:\Solutions\Solution.tproj"Solution Merging on Startup
The platform supports modular project design by automatically merging multiple project files at runtime based on naming conventions.
How It Works:
When launching a main solution (e.g., MyProject), FrameworX automatically merges any projects with names following the pattern:
- Base name + double underscore + suffix + double underscore
- Example:
MyProject__ModuleName__
Example Structure:
MyProject.tproj → Main solution
MyProject__DeviceConfig__.tproj → Device configurations
MyProject__DBTest__.tproj → Test database settings
MyProject__CustomerA__.tproj → Customer customizationsRuntime Behavior:
- Detects all matching
MyProject__*__.tprojfiles - Merges contents (tags, scripts, displays, connections)
- Creates unified runtime environment
- Maintains modular development structure
Windows Service Configuration
Automated Setup
Configure in Runtime → Startup:
- Select "Run as Windows Service"
- Set service name and startup type
- Configure user credentials
- Apply settings
Manual Service Installation
The automated setup executes these steps:
- Create command line:
"C:\Program Files\Tatsoft\FrameworX\10.1\TStartup.exe"
/Solution:"C:\Solutions\Solution.tproj"
/username:Administrator- Install service:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil
"C:\Program Files\Tatsoft\FrameworX\10.1\TStartupAsService.exe"- Registry entry added:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TStartup\ImagePath- Service set to automatic start
Service Security Settings
Log On Configuration:
- Default: Local System account
- Custom: Domain user for external resources
- Configure in Windows Services console
Delayed Start:
- For dependencies on other services
- Configure delay in service properties
Startup Parameters Reference
Main Parameters
| Parameter | Description | Example |
|---|---|---|
/Solution | Solution path (required) | /Solution:"C:\Solutions\Solution.tproj" |
/username | Runtime user | /username:Administrator |
/password | User password | /password:SecurePass123 |
/wa | Windows Authentication | /wa:true |
/ip1 | Primary server IP | /ip1:192.168.1.100 |
/port1 | Primary server port | /port1:3101 |
/viewonly | Read-only mode | /viewonly |
Redundancy Parameters
| Parameter | Description | Default |
|---|---|---|
/redundancy | Enable redundancy | - |
/autoswitch | Auto-switch to primary | - |
/timeautoswitch | Switch delay (seconds) | 60 |
/ip2 | Secondary server IP | - |
/port2 | Secondary server port | 3101 |
/connectiontimeout | Watchdog timeout | 5 |
/connectionretry | Retry attempts | 1 |
/SolutionIPPath | Remote solution path | - |
Redundancy Example:
TStartup.exe /Solution:"C:\Solutions\Solution.tproj"
/redundancy
/ip1:192.168.1.1 /port1:3101
/ip2:192.168.1.2 /port2:3101
/autoswitch /timeautoswitch:60Diagnostic Parameters
| Parameter | Description | Output Location |
|---|---|---|
/SaveLog:3 | Debug logging | C:\Users\Public\Documents\FrameworX\TraceLogs |
/AutoRunDiagnostics:30 | Auto diagnostics (minutes) | C:\ProgramData\FrameworX |
/LogDeviceWriteStartup | Device write logging | C:\ProgramData\FrameworX\Device |
Advanced Parameters
| Parameter | Description | Default |
|---|---|---|
/NumberOfDevicesAtSameTime | Concurrent device startup | 3 |
/TimeBetweenModules | Module start delay (seconds) | 0 |
/AutoCheckWatchDog | Auto-restart frozen channels | Disabled |
/nocache | Disable cache (SmartClient) | false |
/port1WA | Windows Auth port | - |
Per-Process Log File Configuration
Each runtime process (TServer, TStartup, TRunModule, TRichClient) can size-limit its active log file and control retention of daily compressed archives, directly from that process's JSON configuration file (e.g. TServer.json).
Configuration
Add a Logging section under appSettings:
{
"appSettings": {
"Logging": {
"MaxFileSizeMB": 10,
"KeepAllZips": false
}
}
}Omitting the Logging section entirely preserves prior (legacy) behavior — no size cap, and the daily archive compaction described below is unaffected.
MaxFileSizeMB
Caps the size of the process's active log file, in megabytes. When the limit is reached, the process stops writing to that log file and records a notice ("Log file size limit of <N> MB exceeded; logging to this file is stopped.").
- Integer values only, minimum effective value 1. Fractional or sub-1 values (e.g.
0.5) are truncated to0, which disables the size limit — no warning is logged when this happens. Sub-1 MB caps are not supported. - A value of
0or an omitted setting means no limit.
KeepAllZips — daily archive retention
On each day change, the runtime compacts the previous day's per-process log: every non-current log file for that process is compressed into a same-named .zip archive, then the original text log is deleted. This daily compaction always runs, independent of KeepAllZips. The currently-active log file is never touched.
KeepAllZips controls only how many of those daily archives are retained afterward:
| Value | Behavior |
|---|---|
true | All daily .zip archives are kept — they accumulate day after day with no automatic pruning. Use when full log history retention is required. |
false | Only the single most recent .zip archive is kept per process (determined by file last-write time); older archives are deleted at each rollover. Use to keep disk usage bounded. |
Retention is evaluated independently per process log (TServer, TStartup, TRunModule, TRichClient are each pruned separately), and pruning only runs when more than one archive is present — the newest archive is never at risk. KeepAllZips is independent of MaxFileSizeMB: the size cap governs the active log within a day, while KeepAllZips governs retention of the compressed archives across days.
Linux/Docker Startup
systemd Service
Create /etc/systemd/system/frameworx.service:
[Unit]
Description=FrameworX Runtime
After=network.target
[Service]
Type=simple
ExecStart=/opt/frameworx/TStartup.exe /Solution:/opt/solutions/Solution.tproj
Restart=always
User=frameworx
[Install]
WantedBy=multi-user.targetDocker Entrypoint
ENTRYPOINT ["./TStartup.exe"]
CMD ["/Solution:/app/solutions/Solution.tproj"]Client Display Considerations
When running as Windows Service:
- Server components run without user interface
- Client displays must be started separately
- Use AutoStartClient.exe for automatic client startup
- Configure remote access via TWebServices
See Client Deployment (Reference) for detailed client auto-start configuration.
Auto-Start Configuration
Windows Startup Folder
Create shortcut in:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\TWebServices Auto-Start
Configure TWebServicesRunPrograms.json:
{
"appSettings": {
"RunPrograms": {
"MainSolution": "/opt/frameworx/solutions/Main.tproj",
"BackupSolution": "/opt/frameworx/solutions/Backup.tproj"
}
}
}In this section...