Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ jobs:
dotnet restore Dashboard/Dashboard.csproj
dotnet restore Lite/PerformanceMonitorLite.csproj
dotnet restore Installer/PerformanceMonitorInstaller.csproj
dotnet restore InstallerGui/InstallerGui.csproj

- name: Get version
id: version
Expand All @@ -56,9 +55,6 @@ jobs:
- name: Publish CLI Installer
run: dotnet publish Installer/PerformanceMonitorInstaller.csproj -c Release

- name: Publish GUI Installer
run: dotnet publish InstallerGui/InstallerGui.csproj -c Release

- name: Package release artifacts
if: github.event_name == 'release'
shell: pwsh
Expand All @@ -72,14 +68,13 @@ jobs:
# Lite ZIP
Compress-Archive -Path 'publish/Lite/*' -DestinationPath "releases/PerformanceMonitorLite-$version.zip" -Force

# Installer ZIP (CLI + GUI + SQL scripts)
# Installer ZIP (CLI + SQL scripts)
$instDir = 'publish/Installer'
New-Item -ItemType Directory -Force -Path $instDir
New-Item -ItemType Directory -Force -Path "$instDir/install"
New-Item -ItemType Directory -Force -Path "$instDir/upgrades"

Copy-Item 'Installer/bin/Release/net8.0/win-x64/publish/PerformanceMonitorInstaller.exe' $instDir
Copy-Item 'InstallerGui/bin/Release/net8.0-windows/win-x64/publish/PerformanceMonitorInstallerGui.exe' $instDir -ErrorAction SilentlyContinue
Copy-Item 'install/*.sql' "$instDir/install/"
if (Test-Path 'upgrades') { Copy-Item 'upgrades/*' "$instDir/upgrades/" -Recurse -ErrorAction SilentlyContinue }
if (Test-Path 'README.md') { Copy-Item 'README.md' $instDir }
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,13 @@ jobs:
dotnet restore Dashboard/Dashboard.csproj
dotnet restore Lite/PerformanceMonitorLite.csproj
dotnet restore Installer/PerformanceMonitorInstaller.csproj
dotnet restore InstallerGui/InstallerGui.csproj
dotnet restore Lite.Tests/Lite.Tests.csproj

- name: Build all projects
run: |
dotnet build Dashboard/Dashboard.csproj -c Release --no-restore
dotnet build Lite/PerformanceMonitorLite.csproj -c Release --no-restore
dotnet build Installer/PerformanceMonitorInstaller.csproj -c Release --no-restore
dotnet build InstallerGui/InstallerGui.csproj -c Release --no-restore
dotnet build Lite.Tests/Lite.Tests.csproj -c Release --no-restore

- name: Run tests
Expand Down
5 changes: 0 additions & 5 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ jobs:
dotnet restore Dashboard/Dashboard.csproj
dotnet restore Lite/PerformanceMonitorLite.csproj
dotnet restore Installer/PerformanceMonitorInstaller.csproj
dotnet restore InstallerGui/InstallerGui.csproj
dotnet restore Lite.Tests/Lite.Tests.csproj

- name: Run tests
Expand All @@ -77,9 +76,6 @@ jobs:
- name: Publish CLI Installer
run: dotnet publish Installer/PerformanceMonitorInstaller.csproj -c Release

- name: Publish GUI Installer
run: dotnet publish InstallerGui/InstallerGui.csproj -c Release

- name: Package artifacts
shell: pwsh
run: |
Expand All @@ -95,7 +91,6 @@ jobs:
New-Item -ItemType Directory -Force -Path "$instDir/upgrades"

Copy-Item 'Installer/bin/Release/net8.0/win-x64/publish/PerformanceMonitorInstaller.exe' $instDir
Copy-Item 'InstallerGui/bin/Release/net8.0-windows/win-x64/publish/PerformanceMonitorInstallerGui.exe' $instDir -ErrorAction SilentlyContinue
Copy-Item 'install/*.sql' "$instDir/install/"
if (Test-Path 'install/templates') { Copy-Item 'install/templates' "$instDir/install/templates" -Recurse -ErrorAction SilentlyContinue }
if (Test-Path 'upgrades') { Copy-Item 'upgrades/*' "$instDir/upgrades/" -Recurse -ErrorAction SilentlyContinue }
Expand Down
6 changes: 2 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ This repository contains two editions of the SQL Server Performance Monitor:
|--------|-------------|
| `install/` | 50+ T-SQL scripts that create the PerformanceMonitor database |
| `Installer/` | CLI installer for the Full Edition database and collectors |
| `InstallerGui/` | GUI installer (same functionality as the CLI installer) |
| `Dashboard/` | WPF dashboard that connects to the installed PerformanceMonitor database |
| `Installer.Core/` | Shared installation library (used by CLI installer and Dashboard) |
| `Dashboard/` | WPF dashboard connects to PerformanceMonitor database, can also install/upgrade via Add Server |

**Lite Edition** — standalone desktop app, nothing installed on the target server:

Expand Down Expand Up @@ -61,8 +61,6 @@ dotnet build Lite/PerformanceMonitorLite.csproj
# Build CLI Installer (self-contained)
dotnet publish Installer/PerformanceMonitorInstaller.csproj -c Release

# Build GUI Installer
dotnet publish InstallerGui/InstallerGui.csproj -c Release -r win-x64 --self-contained
```

### Running the Applications
Expand Down
6 changes: 0 additions & 6 deletions PerformanceMonitor.sln
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dashboard", "Dashboard\Dash
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PerformanceMonitorLite", "Lite\PerformanceMonitorLite.csproj", "{48718A1C-3679-AB80-1D5F-A9C20CC7EF9A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstallerGui", "InstallerGui\InstallerGui.csproj", "{B9F4D012-5FA6-6773-E3A5-63482B482B9A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lite.Tests", "Lite.Tests\Lite.Tests.csproj", "{C4E76DA8-A115-7291-3AD0-12C648E24FF2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PerformanceMonitorInstaller", "Installer\PerformanceMonitorInstaller.csproj", "{0F1EFD0D-61B6-D475-3A2E-ED7FD83BCE6E}"
Expand All @@ -31,10 +29,6 @@ Global
{48718A1C-3679-AB80-1D5F-A9C20CC7EF9A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{48718A1C-3679-AB80-1D5F-A9C20CC7EF9A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{48718A1C-3679-AB80-1D5F-A9C20CC7EF9A}.Release|Any CPU.Build.0 = Release|Any CPU
{B9F4D012-5FA6-6773-E3A5-63482B482B9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B9F4D012-5FA6-6773-E3A5-63482B482B9A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B9F4D012-5FA6-6773-E3A5-63482B482B9A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B9F4D012-5FA6-6773-E3A5-63482B482B9A}.Release|Any CPU.Build.0 = Release|Any CPU
{C4E76DA8-A115-7291-3AD0-12C648E24FF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C4E76DA8-A115-7291-3AD0-12C648E24FF2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C4E76DA8-A115-7291-3AD0-12C648E24FF2}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down
9 changes: 3 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ PerformanceMonitorInstaller.exe YourServerName --uninstall
PerformanceMonitorInstaller.exe YourServerName sa YourPassword --uninstall
```

The installer automatically tests the connection, checks the SQL Server version (2016+ required), executes SQL scripts, downloads community dependencies, creates SQL Agent jobs, and runs initial data collection. A GUI installer (`InstallerGui/`) is also available with the same functionality.
The installer automatically tests the connection, checks the SQL Server version (2016+ required), executes SQL scripts, downloads community dependencies, creates SQL Agent jobs, and runs initial data collection. You can also install directly from the Dashboard's Add Server dialog.

### CLI Installer Options

Expand Down Expand Up @@ -599,8 +599,8 @@ Monitor/
├── install/ # 58 SQL installation scripts
├── upgrades/ # Version-specific upgrade scripts
├── Installer/ # CLI installer for Full Edition database (C#)
├── InstallerGui/ # GUI installer for Full Edition database (WPF)
├── Dashboard/ # Full Edition dashboard application (WPF)
├── Installer.Core/ # Shared installation library (CLI + Dashboard)
├── Dashboard/ # Full Edition dashboard application (WPF, includes installer)
│ Lite Edition (standalone desktop app, nothing installed on server)
├── Lite/ # Lite Edition desktop application (WPF)
Expand All @@ -624,9 +624,6 @@ dotnet build Lite/PerformanceMonitorLite.csproj

# CLI Installer (self-contained)
dotnet publish Installer/PerformanceMonitorInstaller.csproj -c Release

# GUI Installer
dotnet publish InstallerGui/InstallerGui.csproj -c Release -r win-x64 --self-contained
```

---
Expand Down
16 changes: 1 addition & 15 deletions build-dashboard.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ echo.
:: ----------------------------------------
:: CLI Installer
:: ----------------------------------------
echo [2/3] Publishing CLI Installer...
echo [2/2] Publishing CLI Installer...
dotnet publish Installer\PerformanceMonitorInstaller.csproj -c Release

if %ERRORLEVEL% neq 0 (
Expand All @@ -46,19 +46,6 @@ if %ERRORLEVEL% neq 0 (
)
echo.

:: ----------------------------------------
:: GUI Installer
:: ----------------------------------------
echo [3/3] Publishing GUI Installer...
dotnet publish InstallerGui\InstallerGui.csproj -c Release -r win-x64 --self-contained

if %ERRORLEVEL% neq 0 (
echo.
echo ERROR: GUI Installer build failed!
exit /b 1
)
echo.

:: ----------------------------------------
:: Package Installer + SQL into ZIP
:: ----------------------------------------
Expand All @@ -70,7 +57,6 @@ mkdir "%INST_DIR%\install"
mkdir "%INST_DIR%\upgrades"

copy "Installer\bin\Release\net8.0\win-x64\publish\PerformanceMonitorInstaller.exe" "%INST_DIR%\" >nul
copy "InstallerGui\bin\Release\net8.0\win-x64\publish\InstallerGui.exe" "%INST_DIR%\" >nul 2>&1
copy "install\*.sql" "%INST_DIR%\install\" >nul
xcopy "upgrades" "%INST_DIR%\upgrades\" /E /I /Q >nul 2>&1
if exist README.md copy README.md "%INST_DIR%\" >nul
Expand Down
2 changes: 1 addition & 1 deletion install/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Install Scripts

SQL scripts that create and configure the PerformanceMonitor database for the Full Edition. The CLI installer (`Installer/`) and GUI installer (`InstallerGui/`) execute these scripts in order against the target SQL Server instance.
SQL scripts that create and configure the PerformanceMonitor database for the Full Edition. The CLI installer (`Installer/`) and Dashboard's Add Server dialog execute these scripts in order against the target SQL Server instance.

Scripts create the database, collection tables, configuration tables, stored procedures for each collector, SQL Agent jobs, reporting views, and data retention logic. Each script is idempotent — tables use `IF NOT EXISTS` guards and procedures use `CREATE OR ALTER`, so re-running the installer on an existing installation is safe and preserves collected data.

Expand Down
Loading