Files
hDM/docs/DEPLOYMENT.md
2026-05-06 15:59:53 +03:00

53 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# hOLOlu Download Manager (hDM) Dağıtım ve Kurulum Rehberi
Bu belge, hDM uygulamasının son kullanıcıya dağıtımı (Deployment) ve Advanced Installer gibi araçlarla kurulum (Setup) paketlerinin hazırlanması konularında izlenmesi gereken yolları ve en iyi pratikleri içermektedir.
## 1. Dağıtım Stratejileri (Deployment Strategies)
.NET 8 ile geliştirilen WPF/Windows Masaüstü uygulamalarını yayınlarken (publish) genel olarak iki farklı strateji tercih edilir:
### A. Framework-Dependent (Çerçeveye Bağımlı) Dağıtım
Uygulamanın çalışması için kullanıcının bilgisayarında .NET Desktop Runtime'ın kurulu olmasını gerektiren yöntemdir.
* **Avantajları:** Derlenmiş uygulama boyutu çok küçüktür (Yaklaşık 5-15 MB). Güncellemeler hızlıdır.
* **Dezavantajları:** Kullanıcıda doğru .NET sürümü yoksa uygulama açılmaz ve kullanıcıyı indirme sayfasına yönlendirir.
* **Yayınlama Komutu:**
```powershell
dotnet publish src/DownloadManager.WPF/DownloadManager.WPF.csproj -c Release -r win-x64 --self-contained false
```
### B. Self-Contained (Kendi İçinde Barındıran) Dağıtım
.NET kütüphanelerinin ve uygulamanın ihtiyaç duyduğu tüm çalışma zamanı (runtime) dosyalarının `.exe` içerisine veya yanına gömüldüğü yöntemdir.
* **Avantajları:** Kullanıcının bilgisayarında .NET kurulu olmasına gerek yoktur. Hata riski sıfıra yakındır, "tıkla ve çalıştır" mantığıyla çalışır.
* **Dezavantajları:** Dosya boyutu çok yüksektir (Yaklaşık 150-250 MB arası).
* **Yayınlama Komutu (Tek Dosya - Single File):**
```powershell
dotnet publish src/DownloadManager.WPF/DownloadManager.WPF.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true
```
### C. Boyutu Küçültülmüş Self-Contained (Trimming)
Eğer dosya boyutu (210 MB) sizin için sorunsa, kullanılmayan .NET kodlarını silen `PublishTrimmed` bayrağını kullanabilirsiniz. Bu, boyutu 80-100 MB arasına düşürebilir ancak Reflection kullanan paketlerde (JSON dönüştürücüler vb.) çalışma zamanı hatalarına yol açabileceğinden **kapsamlı test gerektirir**.
```powershell
dotnet publish src/DownloadManager.WPF/DownloadManager.WPF.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=true
```
---
## 2. Advanced Installer ile Kurulum Önerileri
Eğer **Framework-Dependent** (A stratejisi) yayınlama yapıyor ve kurulum dosyasının boyutunu küçük tutmak istiyorsanız, Advanced Installer içerisinde doğru "Prerequisites" (Önkoşullar) ayarını yapmanız hayati önem taşır.
### "You must install .NET Desktop Runtime" Hatasının Çözümü
Advanced Installer'da sadece ".NET Runtime" eklerseniz WPF arayüzü çizilemez. Kesinlikle "Desktop" sürümü eklenmelidir.
1. Advanced Installer projenizi (`hdm_kur.aip`) açın.
2. Sol menüden **Prerequisites** sekmesine tıklayın.
3. Listeden eklediğiniz yanlış veya eksik .NET gereksinimlerini silin (Örn: `.NET Runtime 8.0.x` veya `ASP.NET Core Runtime`).
4. **Packages** kısmından şu paketi bulup ekleyin:
* 👉 **`.NET Desktop Runtime 8.0.x (x64)`**
5. Kurulum seçeneklerinde (Setup Files), bu runtime paketinin kurulum dosyasına gömülmesini (Include in setup) veya internetten indirilmesini (Download from URL) seçebilirsiniz. İnternetten indirme seçeneği, `.msi` / `.exe` dosyanızın boyutunu çok küçük (15 MB altı) tutmanızı sağlar.
### Ek Tavsiyeler
* **Kısayol ve Simgeler:** Advanced Installer'da masaüstü kısayolu oluştururken, `hDM.exe` dosyasını seçtiğinizde simge otomatik olarak `Down_nb-02.ico` algılanacaktır.
* **Tarayıcı Eklentisi (Browser Bridge):** `DownloadManager.BrowserBridge.exe` dosyasını da `hDM.exe` ile aynı klasöre kurduğunuzdan emin olun. Ayrıca Advanced Installer'ın **Registry** bölümüne girip, eklentinin çalışması için gereken `register_bridge.reg` içeriğini kurulum sırasında otomatik yazılacak şekilde ekleyin.
* **Mimariler:** Uygulamanızı `x64` (64-bit) olarak yayınlıyorsanız, Advanced Installer projesinin **Install Parameters** kısmından "Package Type" ayarını `64-bit package` olarak seçmeyi unutmayın. Aksi takdirde "Program Files (x86)" klasörüne kurulmaya çalışır.