53 lines
4.3 KiB
Markdown
53 lines
4.3 KiB
Markdown
# 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. |