Deploying FrameworX runtime components for production environments.
Parent Page: Deployment (Reference)
Deploying FrameworX runtime components for production environments.
Parent Page:Deployment
(Reference)DeploymentScenarios
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:
Option | Components | Size | Use Case |
---|---|---|---|
Runtime-Only | TServer.exe, drivers, minimal files | ~100 MB | Production edge devices |
Full Platform | All files including Designer | ~500 MB+ | Enable remote ClickOnce Designer |
TWebServices-Only | Communication server only | Minimal | Development/testing |
Windows Runtime Setup
Since Windows uses the full platform installation:
- Install FrameworX (see Installation & Licensing)
- Configure for Runtime Only
- Solution Center → Runtime → Startup
- Set solution to auto-start
- Configure as Windows Service
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 Solution Manager: 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:
cmd
cd "C:\Program Files (x86)\Tatsoft\FrameworX\10.1"
InstallTStartupTStartup.exe /
serviceSolution:"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 customizations
Runtime Behavior:
- Detects all matching
MyProject__*__.tproj
files - 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:
cmd
"C:\Program Files (x86)\Tatsoft\FrameworX\10.1\TStartup.exe"
/Solution:"C:\Solutions\Solution.tproj"
/username:Administrator
- Install service:
cmd
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil
"C:\Program Files (x86)\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:
cmd
TStartup.exe /Solution:"C:\Solutions\Solution.tproj"
/redundancy
/ip1:192.168.1.1 /port1:3101
/ip2:192.168.1.2 /port2:3101
/autoswitch /timeautoswitch:60
Diagnostic 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 | - |
Linux/Docker Startup
systemd Service
- Service Configuration
- Service name: FrameworX Runtime
- Startup type: Automatic
- Recovery: Restart on failure
.NET 8 Runtime Deployment
Option 1: Runtime-Only (Production)
Deploy minimal components for production:
Required Files:
/opt/frameworkx/
??? TServer.exe
??? TWebServices.exe
??? Driver assemblies
??? Solution files (.tproj, .dbsln)
??? Runtime dependencies
Linux Installation:
bash
# Create directory
sudo mkdir -p /opt/frameworkx
# Copy runtime files
sudo cp -r /source/net8.0/runtime/* /opt/frameworkx/
# Set permissions
sudo chmod +x /opt/frameworkx/*.exe
# Start runtime
./TServer.exe /solution:MySolution.tproj
Option 2: Full Platform (Remote Designer)
Deploy all files to enable ClickOnce Designer access:
Benefits:
- Windows clients access Designer with zero installation
- Browse to
http://device-ip:10108/solutions
- Designer runs on client, edits on device
- Supports multiple product versions
Deployment:
bash
# Copy entire platform
sudo cp -r /source/net8.0/* /opt/frameworkx/
# Includes Designer files (not executed on device)
# Size: ~500 MB+
Option 3: TWebServices-Only (Development)
Minimal deployment for development:
- Deploy only TWebServices.exe
- Push solution and runtime remotely
- Not recommended for production (slow)
- Useful for testing and development
Service Configuration
Windows Service
Configure in Runtime → Startup or manually:
xml
<service>
<name>FrameworXRuntime</name>
<displayName>FrameworX Runtime Service</displayName>
<description>FrameworX Solution Runtime</description>
<startMode>Automatic</startMode>
</service>
Linux systemdCreate /etc/systemd/system/frameworkx.service
:
ini
[Unit]
Description=FrameworX Runtime
After=network.target
[Service]
Type=simple
User=frameworkx
ExecStart=/opt/frameworkx/TServerTStartup.exe /solution:MySolutionSolution:/opt/solutions/Solution.tproj
Restart=always
RestartSecUser=10frameworkx
[Install]
WantedBy=multi-user.target
Enable and start:
bash
Docker Entrypoint
dockerfile
ENTRYPOINT ["./TStartup.exe"] CMD ["/Solution:/app/solutions/Solution.tproj"]
sudo systemctl enable frameworkx sudo systemctl start frameworkx
Auto-Start Configuration
Windows Startup Folder
Create shortcut in:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\
TWebServices Auto-Start
Configure TWebServicesRunPrograms.json
:
json
{
"appSettings": {
"RunPrograms": {
"Solution1MainSolution": "/opt/frameworkx/solutions/MySolutionMain.tproj",
"CustomAppBackupSolution": "/usropt/localframeworkx/binsolutions/customappBackup.tproj"
}
}
}
Location: /home/frameworkx/MachineSettings/
(Linux) or C:\Users\Public\Documents\FrameworX\MachineSettings\
(Windows)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
AutoStartClient Example:
cmd
AutoStartClient.exe /server:localhost /port:3101 /display:MainScreen
This consolidated page now includes all the startup configuration details, parameters, and the solution merging feature in the appropriate context.