
Bir Windows uygulamasını kaldırdığınızda her şeyin tamamen silindiğini düşünebilirsiniz. Ancak bu her zaman doğru değil. Özellikle Microsoft Store uygulamalarında kullanılan MSIX paketleme formatında çalışan uygulamalar, sistemden tamamen kaldırılmayabiliyor.
Klasik MSI (Microsoft Installer) tabanlı yükleyiciler beklenen şekilde çalışıyor. Bir uygulama kaldırıldığında program dosyaları siliniyor, klasörler kaldırılıyor, kayıt defteri girdileri temizleniyor ve uygulamanın geride bıraktığı bileşenler sistemden kaldırılıyor.
Ancak MSIX mimarisi farklı bir çalışma mantığına sahip.
MSIX kullanan uygulamalarda Windows, uygulamanın yaşam döngüsünü dört ayrı aşamaya ayırıyor:
- Stage: Uygulama dosyaları diske kopyalanıyor.
- Register: Uygulama, ilgili kullanıcı hesabına kaydediliyor.
- Deregister: Uygulamanın kullanıcı hesabıyla bağlantısı kesiliyor.
- Destage: Uygulama dosyaları fiziksel olarak diskten siliniyor.
Kullanıcı bir uygulama için “Kaldır” düğmesine bastığında, Windows aslında RemovePackageAsync adlı bir API çağrısını çalıştırıyor. Adından da anlaşılacağı gibi sistem içinde bu işlem “Uninstall” olarak adlandırılmıyor.
Bu işlem ilk aşamada yalnızca Deregister adımını gerçekleştiriyor. Yani uygulamanın kullanıcı hesabıyla bağlantısı kesiliyor. Dosyaların gerçekten silinmesini sağlayan Destage işlemi ise yalnızca sistem, bu dosyalara artık hiçbir bileşenin ihtiyaç duymadığına karar verirse gerçekleşiyor.
Başka bir deyişle, Windows uygulamanın dosyalarının başka bir yerde kullanılmaya devam ettiğini düşünüyorsa bunları silmiyor.
Bunun en yaygın örneği aynı bilgisayardaki birden fazla kullanıcı hesabı. Eğer başka bir kullanıcı aynı uygulamayı kullanıyorsa, uygulamayı kendi hesabınızdan kaldırmanız yalnızca sizin hesabınızla olan bağlantısını kesiyor. Başlat menüsünde veya yüklü uygulamalar listesinde görünmese bile uygulama dosyaları sistemde kalmaya devam ediyor.
Bu nedenle kullanıcı açısından uygulama kaldırılmış gibi görünse de, işletim sistemi açısından tamamen silinmiş olmayabiliyor. Bunun sonucu olarak da uygulamayı kaldırdıktan sonra depolama alanında beklediğiniz kadar boş yer açılmayabiliyor.
Üstelik bu durum yalnızca birden fazla kullanıcı hesabı bulunan bilgisayarlarda yaşanmıyor.
Tek kullanıcı hesabına sahip sistemlerde de bazı ortak bileşenler nedeniyle aynı durum ortaya çıkabiliyor. Örneğin .NET Runtime, Microsoft Visual C++ Redistributable paketleri veya Windows App SDK, MSIX bileşenleri olarak dağıtılıyor ve aynı bilgisayardaki birden fazla uygulama tarafından ortak kullanılabiliyor.
Bu nedenle A uygulamasını kaldırdığınızda, B uygulaması aynı ortak bileşene ihtiyaç duyuyorsa Windows bu bileşeni diskten silmiyor. Bilgisayarda yalnızca tek kullanıcı hesabı bulunsa bile ortak çerçeve paketleri kullanılmaya devam ettiği için Destage işlemi gerçekleştirilmiyor.
Günlük kullanımda bu durum çoğu kullanıcı için önemli bir sorun oluşturmuyor. Ayrıca Microsoft Store uygulamalarının büyük bölümü zaten çok fazla depolama alanı kaplamıyor. Yine de Windows’un uygulamaları arka planda nasıl yönettiğini bilmek, depolama alanının neden beklenenden daha az boşaldığını anlamaya yardımcı olabiliyor.

İlk yorum yapan olun