322 lines
9.5 KiB
Markdown
322 lines
9.5 KiB
Markdown
# Visual Studio Installer Projects - Návod
|
|
|
|
## 1. Inštalácia rozšírenia pre VS 2017
|
|
|
|
### Krok 1: Otvorte VS 2017
|
|
1. Spustite Visual Studio 2017
|
|
2. Prejdite na **Tools → Extensions and Updates...**
|
|
3. V ľavom paneli vyberte **Online**
|
|
4. Do vyhľadávacieho poľa napíšte: `Microsoft Visual Studio Installer Projects`
|
|
5. Nájdite oficiálne rozšírenie od Microsoft
|
|
6. Kliknite **Download**
|
|
7. Po stiahnutí **zatvorte VS 2017** - inštalácia sa spustí automaticky
|
|
8. Postupujte podľa VSIX Installer krokov
|
|
9. Reštartujte VS 2017
|
|
|
|
**Alternatíva - Priame stiahnutie:**
|
|
- Navštívte: https://marketplace.visualstudio.com/items?itemName=VisualStudioClient.MicrosoftVisualStudio2017InstallerProjects
|
|
- Stiahnite `.vsix` súbor a spustite ho
|
|
|
|
---
|
|
|
|
## 2. Vytvorenie Setup projektu
|
|
|
|
### Krok 1: Pridajte Setup projekt do solution
|
|
1. Otvorte `BoxPacker3D.sln` vo VS 2017
|
|
2. V **Solution Explorer** kliknite pravým na solution (nie projekt)
|
|
3. **Add → New Project...**
|
|
4. V ľavom paneli: **Other Project Types → Visual Studio Installer**
|
|
5. Vyberte šablónu: **Setup Project**
|
|
6. Meno: `BoxPacker3D.Setup`
|
|
7. Kliknite **OK**
|
|
|
|
### Krok 2: Nastavte základné vlastnosti
|
|
1. V **Solution Explorer** kliknite pravým na `BoxPacker3D.Setup`
|
|
2. Vyberte **Properties**
|
|
3. Nastavte:
|
|
- **Author**: Vaše meno alebo firma
|
|
- **Description**: `3D Box Packer - Aplikácia pre 3D balenie kusov`
|
|
- **Manufacturer**: Vaše meno/firma
|
|
- **ManufacturerUrl**: Vaša web stránka (voliteľné)
|
|
- **ProductName**: `3D Box Packer`
|
|
- **Title**: `3D Box Packer Installer`
|
|
- **Version**: `1.0.0`
|
|
|
|
---
|
|
|
|
## 3. Pridanie súborov do inštalátora
|
|
|
|
### Metóda A: Project Output (Odporúčané)
|
|
|
|
1. V **Solution Explorer** otvorte `BoxPacker3D.Setup`
|
|
2. Vidíte **File System Editor** s tromi priečinkami:
|
|
- Application Folder
|
|
- User's Desktop
|
|
- User's Programs Menu
|
|
|
|
3. **Kliknite pravým na "Application Folder"** → **Add → Project Output...**
|
|
4. V dialógu:
|
|
- **Project**: Vyberte `BoxPacker3D`
|
|
- **Configuration**: Vyberte `Release .NET 9.0`
|
|
- Zaškrtnite: **Primary output** (obsahuje EXE a všetky DLLs)
|
|
- Kliknite **OK**
|
|
|
|
5. **Pridajte konfiguračné súbory**:
|
|
- Kliknite pravým na **Application Folder** → **Add → File...**
|
|
- Navigujte do priečinka projektu
|
|
- Vyberte: `appsettings.json` a `items.db`
|
|
- Kliknite **OK**
|
|
|
|
### Metóda B: Publish Output (Alternatíva)
|
|
|
|
Ak metóda A nefunguje správne:
|
|
|
|
1. Najprv publikujte projekt:
|
|
```
|
|
dotnet publish -c Release -r win-x64 --self-contained false
|
|
```
|
|
|
|
2. V Setup projekte:
|
|
- Kliknite pravým na **Application Folder** → **Add → File...**
|
|
- Navigujte do: `bin\Release\net9.0-windows\win-x64\publish\`
|
|
- Vyberte **všetky súbory** (`.exe`, `.dll`, `.json`, `.db`)
|
|
- Kliknite **OK**
|
|
|
|
---
|
|
|
|
## 4. Vytvorenie Desktop ikony (voliteľné)
|
|
|
|
1. V **File System Editor** kliknite pravým na **User's Desktop**
|
|
2. **Add → File...**
|
|
3. V dialógu vyberte **Application Folder** (nie súbor!)
|
|
4. V zozname nájdite **Primary output from BoxPacker3D**
|
|
5. Kliknite **OK**
|
|
6. Ikona sa vytvorí automaticky
|
|
|
|
Alebo:
|
|
1. Kliknite pravým na **User's Desktop** → **Create New Shortcut**
|
|
2. V dialógu vyberte **Application Folder**
|
|
3. Vyberte **Primary output from BoxPacker3D**
|
|
4. Kliknite **OK**
|
|
5. Premenujte shortcut na "3D Box Packer"
|
|
|
|
---
|
|
|
|
## 5. Start Menu položka
|
|
|
|
1. V **File System Editor** kliknite pravým na **User's Programs Menu**
|
|
2. **Add → Folder**
|
|
3. Premenujte priečinok na `3D Box Packer`
|
|
4. Kliknite pravým na tento priečinok → **Create New Shortcut**
|
|
5. V dialógu vyberte **Application Folder**
|
|
6. Vyberte **Primary output from BoxPacker3D**
|
|
7. Kliknite **OK**
|
|
8. Premenujte shortcut na "3D Box Packer"
|
|
|
|
---
|
|
|
|
## 6. Nastavenie .NET 9 prerequisite
|
|
|
|
### Varient 1: Launch Conditions (Upozornenie)
|
|
|
|
1. V **Solution Explorer** kliknite pravým na `BoxPacker3D.Setup`
|
|
2. **View → Launch Conditions**
|
|
3. Kliknite pravým na **Requirements on Target Machine** → **Add Launch Condition**
|
|
4. Vlastnosti:
|
|
- **Condition**: `NETFRAMEWORK90FULL="#1"`
|
|
- **Message**: `Táto aplikácia vyžaduje .NET 9. Stiahnite z https://dotnet.microsoft.com/download/dotnet/9.0`
|
|
|
|
### Variant 2: Bootstrapper (Automatická inštalácia)
|
|
|
|
1. Kliknite pravým na `BoxPacker3D.Setup` → **Properties**
|
|
2. Nájdite sekciu **Prerequisites...**
|
|
3. V dialógu:
|
|
- Zaškrtnite **Create setup program to install prerequisite components**
|
|
- V zozname hľadajte `.NET Desktop Runtime 9.0` (ak nie je, musíte použiť custom bootstrapper)
|
|
- Vyberte umiestnenie: **Download prerequisites from the component vendor's web site**
|
|
4. Kliknite **OK**
|
|
|
|
**Poznámka:** Ak .NET 9 nie je v zozname prerequisite (starší VS 2017), použite Launch Condition a užívateľ si musí nainštalovať .NET 9 manuálne.
|
|
|
|
---
|
|
|
|
## 7. Build inštalátora
|
|
|
|
### Jednoduchý build:
|
|
|
|
1. V **Solution Explorer** kliknite pravým na `BoxPacker3D.Setup`
|
|
2. Vyberte **Build**
|
|
3. Počkajte na dokončenie
|
|
4. MSI súbor nájdete v: `BoxPacker3D.Setup\Release\BoxPacker3D.Setup.msi`
|
|
|
|
### Batch script pre automatizáciu:
|
|
|
|
Vytvorte `build-installer-vstudio.bat`:
|
|
|
|
```batch
|
|
@echo off
|
|
echo ================================================
|
|
echo Building BoxPacker3D with VS Installer Projects
|
|
echo ================================================
|
|
|
|
echo.
|
|
echo [1/3] Building Release configuration...
|
|
msbuild BoxPacker3D.sln /p:Configuration=Release /p:Platform="Any CPU" /v:minimal
|
|
|
|
if errorlevel 1 (
|
|
echo ERROR: Project build failed!
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
echo.
|
|
echo [2/3] Building Setup project...
|
|
msbuild BoxPacker3D.Setup\BoxPacker3D.Setup.vdproj /p:Configuration=Release /v:minimal
|
|
|
|
if errorlevel 1 (
|
|
echo ERROR: Setup build failed!
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
echo.
|
|
echo [3/3] Installer created successfully!
|
|
echo Location: BoxPacker3D.Setup\Release\BoxPacker3D.Setup.msi
|
|
echo.
|
|
|
|
explorer /select,"BoxPacker3D.Setup\Release\BoxPacker3D.Setup.msi"
|
|
pause
|
|
```
|
|
|
|
---
|
|
|
|
## 8. Vlastnosti MSI inštalátora
|
|
|
|
### Upgrade Behavior (Automatický upgrade)
|
|
|
|
1. V **Solution Explorer** kliknite pravým na `BoxPacker3D.Setup`
|
|
2. **Properties**
|
|
3. Nastavte:
|
|
- **RemovePreviousVersions**: `True` (umožní upgrade cez nainštalovanie novej verzie)
|
|
- **DetectNewerInstalledVersion**: `True` (zabráni inštalácii staršej verzie)
|
|
|
|
### Product Code a Upgrade Code
|
|
|
|
- **ProductCode**: Automaticky sa vygeneruje nový pri každom zmene verzie
|
|
- **UpgradeCode**: **NIKDY nemeňte!** Toto ID identifikuje vašu aplikáciu naprieč verziami
|
|
|
|
---
|
|
|
|
## 9. Pokročilé nastavenia
|
|
|
|
### Custom Actions (Voliteľné)
|
|
|
|
Ak potrebujete spustiť akcie počas inštalácie:
|
|
|
|
1. Kliknite pravým na `BoxPacker3D.Setup` → **View → Custom Actions**
|
|
2. Môžete pridať:
|
|
- **Install**: Spustí sa pri inštalácii
|
|
- **Commit**: Po úspešnej inštalácii
|
|
- **Rollback**: Ak inštalácia zlyhá
|
|
- **Uninstall**: Pri odinštalácii
|
|
|
|
### Registry Keys (Voliteľné)
|
|
|
|
1. **View → Registry**
|
|
2. Navigujte do `HKEY_LOCAL_MACHINE\Software`
|
|
3. Kliknite pravým → **New → Key**
|
|
4. Vytvorte štruktúru napr. `YourCompany\BoxPacker3D`
|
|
5. Pridajte hodnoty (napr. install path)
|
|
|
|
### File Associations (Voliteľné)
|
|
|
|
1. **View → File Types**
|
|
2. Pridajte vlastné prípony (.box, .pack, atď.)
|
|
3. Asociujte s vašou aplikáciou
|
|
|
|
---
|
|
|
|
## 10. Testovanie
|
|
|
|
### Pred vydaním:
|
|
|
|
1. **Nainštalujte MSI** na čistom PC alebo VM
|
|
2. Overte že:
|
|
- ✅ Aplikácia sa spustí
|
|
- ✅ Všetky súbory sú prítomné
|
|
- ✅ items.db sa vytvorí/skopíruje
|
|
- ✅ appsettings.json funguje
|
|
- ✅ Desktop ikona funguje (ak je)
|
|
- ✅ Start Menu položka funguje
|
|
- ✅ Uninstaller funguje správne
|
|
|
|
3. **Test upgrade:**
|
|
- Zmeňte verziu v Setup properties (napr. 1.0.0 → 1.0.1)
|
|
- Rebuild
|
|
- Nainštalujte cez starú verziu
|
|
- Overte že upgrade prebehol bez chýb
|
|
|
|
---
|
|
|
|
## 11. Distribúcia
|
|
|
|
MSI súbor je pripravený na distribúciu:
|
|
- Môžete ho nahrať na web
|
|
- Poslať emailom
|
|
- Distribuovať na USB
|
|
- Nie je potrebný žiadny iný súbor
|
|
|
|
**Veľkosť inštalátora:**
|
|
- Framework-dependent (vyžaduje .NET 9): ~5-10 MB
|
|
- Self-contained (zahrnutý .NET runtime): ~60-80 MB
|
|
|
|
---
|
|
|
|
## 12. Riešenie problémov
|
|
|
|
### "The project could not be opened"
|
|
- **Príčina:** Rozšírenie nie je nainštalované
|
|
- **Riešenie:** Nainštalujte "Microsoft Visual Studio Installer Projects"
|
|
|
|
### "Unable to update dependencies"
|
|
- **Príčina:** Konflikt verzií
|
|
- **Riešenie:** Použite **Project Output** namiesto manuálneho pridávania súborov
|
|
|
|
### MSI zlyhá pri inštalácii
|
|
- Skontrolujte Windows Event Log (Application)
|
|
- Zapnite MSI logging: `msiexec /i BoxPacker3D.Setup.msi /l*v install.log`
|
|
|
|
### items.db sa neprenesie
|
|
- V Properties súboru `items.db` overte:
|
|
- **Build Action**: None alebo Content
|
|
- **Copy to Output Directory**: Copy if newer
|
|
- Pridajte manuálne do Application Folder v Setup projekte
|
|
|
|
---
|
|
|
|
## Porovnanie: VS Installer vs Inno Setup
|
|
|
|
| Feature | VS Installer Projects | Inno Setup |
|
|
|---------|----------------------|------------|
|
|
| **Výstup** | MSI | EXE |
|
|
| **GUI** | ✅ Visual Studio | ❌ Text editor |
|
|
| **Verzovanie** | ⚠️ Binárny .vdproj | ✅ Text .iss |
|
|
| **Cena** | ✅ Zadarmo | ✅ Zadarmo |
|
|
| **Jednoduchosť** | ✅ Drag & drop | ⚠️ Scripting |
|
|
| **Flexibilita** | ⚠️ Obmedzená | ✅ Vysoká |
|
|
| **Windows štandard** | ✅ MSI natívny | ⚠️ EXE custom |
|
|
| **CI/CD** | ⚠️ Potrebuje VS | ✅ Command-line |
|
|
|
|
---
|
|
|
|
## Ďalšie kroky
|
|
|
|
1. Nainštalujte rozšírenie
|
|
2. Vytvorte Setup projekt
|
|
3. Pridajte súbory pomocou Project Output
|
|
4. Nastavte vlastnosti
|
|
5. Build a test
|
|
6. Distribuujte MSI
|
|
|
|
**Tip:** Ak plánujete často updatovať, zachovajte `UpgradeCode` konštantný a len zvyšujte verziu!
|