# 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.