ClickOnce güvenliği ve dağıtımı

ClickOnce, minimum kullanıcı müdahalesiyle yüklenip çalıştırılabilen, kendi kendini güncelleştiren Windows tabanlı uygulamalar oluşturmanıza olanak sağlayan bir dağıtım teknolojisidir. Projelerinizi Visual Basic ve Visual C# ile geliştirdiyseniz, Visual Studio ClickOnce teknolojisiyle dağıtılan uygulamaları yayımlamak ve güncelleştirmek için tam destek sağlar. Visual C++ uygulamalarını dağıtma hakkında bilgi için bkz . Visual C++ Uygulamaları için ClickOnce Dağıtımı.

ClickOnce dağıtımı, dağıtımdaki üç önemli sorunun üstesinden gelir:

  • Uygulamaları güncelleştirmede zorluklar. Microsoft Windows Installer dağıtımıyla, bir uygulama her güncelleştirildiğinde kullanıcı bir güncelleştirme, msp dosyası yükleyebilir ve bunu yüklü ürüne uygulayabilir; ClickOnce dağıtımı ile güncelleştirmeleri otomatik olarak sağlayabilirsiniz. Uygulamanın yalnızca değiştirilen bölümleri indirilir ve ardından tam, güncelleştirilmiş uygulama yeni bir yan yana klasörden yeniden yüklenir.

  • Kullanıcının bilgisayarına etkisi. Windows Installer dağıtımı ile uygulamalar genellikle paylaşılan bileşenlere güvenir ve sürüm çakışmaları olabilir; ClickOnce dağıtımı ile her uygulama bağımsızdır ve diğer uygulamalara müdahale edemez.

  • Güvenlik izinleri. Windows Installer dağıtımı yönetim izinleri gerektirir ve yalnızca sınırlı kullanıcı yüklemesine izin verir; ClickOnce dağıtımı, yönetici olmayan kullanıcıların yalnızca uygulama için gereken Kod Erişimi Güvenliği izinlerini yüklemesine ve vermesine olanak tanır.

    Geçmişte bu sorunlar bazen geliştiricilerin Windows tabanlı uygulamalar yerine Web uygulamaları oluşturmaya karar vermesine ve yükleme kolaylığı için zengin bir kullanıcı arabiriminden ödün vermesine neden oldu. ClickOnce kullanılarak dağıtılan uygulamaları kullanarak her iki teknolojiden de en iyi şekilde faydalanabilirsiniz.

ClickOnce uygulaması nedir?

ClickOnce uygulaması ClickOnce teknolojisi kullanılarak yayımlanan herhangi bir Windows Presentation Foundation (.xbap), Windows Forms (.exe), konsol uygulaması (.exe) veya Office çözümüdür (.dll). ClickOnce uygulamasını üç farklı yolla yayımlayabilirsiniz: Web sayfasından, ağ dosya paylaşımından veya CD-ROM gibi eski medyadan. ClickOnce uygulaması bir son kullanıcının bilgisayarına yüklenebilir ve bilgisayar çevrimdışı olduğunda bile yerel olarak çalıştırılabilir veya son kullanıcının bilgisayarına kalıcı olarak herhangi bir şey yüklemeden yalnızca çevrimiçi modda çalıştırılabilir. Daha fazla bilgi için bkz . ClickOnce dağıtım stratejisi seçme.

ClickOnce uygulamaları kendi kendine güncelleştirilebilir; kullanılabilir hale geldikçe daha yeni sürümleri denetleyebilir ve güncelleştirilmiş dosyaları otomatik olarak değiştirebilir. Geliştirici güncelleştirme davranışını belirtebilir; Ağ yöneticisi, güncelleştirme stratejilerini de denetleyebilir, örneğin güncelleştirmeyi zorunlu olarak işaretleyebilir. Güncelleştirmeler, son kullanıcı veya yönetici tarafından önceki bir sürüme de geri döndürülebilir. Daha fazla bilgi için bkz . ClickOnce güncelleştirme stratejisi seçme.

ClickOnce uygulamaları yalıtılmış olduğundan, clickOnce uygulamasını yüklemek veya çalıştırmak mevcut uygulamaları bozamaz. ClickOnce uygulamaları bağımsızdır; her ClickOnce uygulaması, kullanıcı başına, uygulama başına güvenli bir önbellekte yüklenir ve bu önbellekten çalıştırılır. ClickOnce uygulamaları İnternet veya İntranet güvenlik bölgelerinde çalışır. Gerekirse uygulama yükseltilmiş güvenlik izinleri isteyebilir. Daha fazla bilgi için bkz . Güvenli ClickOnce uygulamaları.

ClickOnce güvenliği nasıl çalışır?

Çekirdek ClickOnce güvenliği sertifikaları, kod erişim güvenlik ilkelerini ve ClickOnce güven istemini temel alır.

Sertifikalar

Authenticode sertifikaları, uygulamanın yayımcısının orijinalliğini doğrulamak için kullanılır. Uygulama dağıtımı için Authenticode kullanarak ClickOnce, zararlı bir programın kendisini yerleşik, güvenilir bir kaynaktan gelen meşru bir program olarak göstermesini önlemeye yardımcı olur. İsteğe bağlı olarak, dosyaların üzerinde oynanmadığını kanıtlamak için uygulama ve dağıtım bildirimlerini imzalamak için sertifikalar da kullanılabilir. Daha fazla bilgi için bkz . ClickOnce ve Authenticode. Sertifikalar, istemci bilgisayarları güvenilen yayımcıların listesine sahip olacak şekilde yapılandırmak için de kullanılabilir. Bir uygulama güvenilir bir yayımcıdan geliyorsa, herhangi bir kullanıcı etkileşimi olmadan yüklenebilir. Daha fazla bilgi için bkz . Güvenilen uygulama dağıtımına genel bakış.

Kod erişimi güvenliği

Kod erişim güvenliği, kodun korumalı kaynaklara erişimini sınırlamaya yardımcı olur. Çoğu durumda, izinleri sınırlamak için İnternet veya Yerel İntranet bölgelerini seçebilirsiniz. Uygulama için uygun bölgeyi istemek için Project Tasarım Aracı güvenlik sayfasını kullanın. Ayrıca, son kullanıcı deneyimine öykünmek için kısıtlı izinlere sahip uygulamalarda hata ayıklayabilirsiniz. Daha fazla bilgi için bkz . ClickOnce uygulamaları için kod erişim güvenliği.

ClickOnce güven istemi

Uygulama, bölgenin izin verdiğinden daha fazla izin isterse, son kullanıcıdan güven kararı vermesi istenebilir. Son kullanıcı Windows Forms uygulamaları, Windows Presentation Foundation uygulamaları, konsol uygulamaları, XAML tarayıcı uygulamaları ve Office çözümleri gibi ClickOnce uygulamalarının çalıştırılmasına güvenilip güvenileceğine karar verebilir. Daha fazla bilgi için bkz . Nasıl yapılır: ClickOnce güven istemi davranışını yapılandırma.

ClickOnce dağıtımı nasıl çalışır?

Temel ClickOnce dağıtım mimarisi iki XML bildirim dosyasını temel alır: uygulama bildirimi ve dağıtım bildirimi. Dosyalar ClickOnce uygulamalarının nereden yüklendiğini, nasıl güncelleştirildiklerini ve ne zaman güncelleştirildiklerini açıklamak için kullanılır.

ClickOnce uygulamalarını yayımlama

Uygulama bildirimi, uygulamanın kendisini açıklar. Buna derlemeler, uygulamayı oluşturan bağımlılıklar ve dosyalar, gerekli izinler ve güncelleştirmelerin sağlanacağı konum dahildir. Uygulama geliştiricisi, Visual Studio'daki Yayımlama Sihirbazı'nı (.NET Core ve .NET 5+) veya Windows Yazılım Geliştirme Seti'ndeki (SDK) Bildirim Oluşturma ve Düzenleme Aracı (Mage.exe) kullanarak uygulama bildirimini yazar. Daha fazla bilgi için bkz.

Dağıtım bildiriminde uygulamanın nasıl dağıtıldığı açıklanır. Bu, uygulama bildiriminin konumunu ve istemcilerin çalıştırması gereken uygulama sürümünü içerir.

Not

.NET Core 3.1 ve .NET 5 veya üzeri için ClickOnce'da Mage.exe yerine dotnet-mage.exe kullanın. Daha fazla bilgi için bkz . .NET için ClickOnce.

ClickOnce uygulamalarını dağıtma

Oluşturulduktan sonra dağıtım bildirimi dağıtım konumuna kopyalanır. Bu bir Web sunucusu, ağ dosya paylaşımı veya CD gibi eski bir medya olabilir. Uygulama bildirimi ve tüm uygulama dosyaları da dağıtım bildiriminde belirtilen bir dağıtım konumuna kopyalanır. Bu, dağıtım konumuyla aynı veya farklı bir konum olabilir. Visual Studio'da Yayımlama Sihirbazı kullanılırken kopyalama işlemleri otomatik olarak gerçekleştirilir.

ClickOnce uygulamalarını yükleme

Dağıtım konumuna dağıtıldıktan sonra, son kullanıcılar web sayfasındaki veya klasördeki dağıtım bildirim dosyasını temsil eden bir simgeye tıklayarak uygulamayı indirebilir ve yükleyebilir. Çoğu durumda, son kullanıcıya yükleme işlemini onaylamasını isteyen basit bir iletişim kutusu sunulur. Bu işlemden sonra yükleme devam eder ve uygulama ek müdahale olmadan başlatılır. Uygulamanın yükseltilmiş izinler gerektirdiği veya uygulamanın güvenilir bir sertifika tarafından imzalanmadığı durumlarda, iletişim kutusu ayrıca yüklemenin devam etmesi için kullanıcıdan izin vermesini ister. ClickOnce yüklemeleri kullanıcı başına olsa da, yönetici ayrıcalıkları gerektiren önkoşullar varsa izin yükseltmesi gerekebilir. Yükseltilmiş izinler hakkında daha fazla bilgi için bkz . ClickOnce uygulamalarının güvenliğini sağlama.

Güvenilir bir sertifikayla imzalanan ClickOnce uygulamalarının sessizce yüklenebilmesi için sertifikalara makine veya kuruluş düzeyinde güvenilebilir. Güvenilen sertifikalar hakkında daha fazla bilgi için bkz . Güvenilen uygulama dağıtımına genel bakış.

Uygulama, kullanıcının Başlat menüsüne ve Denetim Masası Program Ekle veya Kaldır grubuna eklenebilir. Diğer dağıtım teknolojilerinden farklı olarak, Program Files klasörüne veya kayıt defterine hiçbir şey eklenmez ve yükleme için yönetim hakları gerekmez

Not

Uygulamanın Başlat menüsüne ve Program Ekle veya Kaldır grubuna eklenmesini engellemek de mümkündür ve bu da uygulamanın bir Web uygulaması gibi davranmasını sağlar. Daha fazla bilgi için bkz . ClickOnce dağıtım stratejisi seçme.

ClickOnce uygulamalarını güncelleştirme

Uygulama geliştiricileri uygulamanın güncelleştirilmiş bir sürümünü oluşturduğunda, yeni bir uygulama bildirimi oluşturur ve dosyaları genellikle özgün uygulama dağıtım klasörüne eşdüzey bir klasör olan bir dağıtım konumuna kopyalar. Yönetici, dağıtım bildirimini uygulamanın yeni sürümünün konumuna işaret eden şekilde güncelleştirir.

Not

Visual Studio'daki Yayımlama Sihirbazı bu adımları gerçekleştirmek için kullanılabilir. .NET Core ve .NET 5+ için Yayımlama aracı bu adımları sağlar.

Dağıtım konumuna ek olarak, dağıtım bildirimi uygulamanın güncelleştirilmiş sürümleri denetlediği bir güncelleştirme konumu (Web sayfası veya ağ dosyası paylaşımı) da içerir. ClickOnce Yayımlama özellikleri, uygulamanın güncelleştirmeleri ne zaman ve ne sıklıkta denetlemesi gerektiğini belirtmek için kullanılır. Güncelleştirme davranışı dağıtım bildiriminde belirtilebilir veya ClickOnce API'leri aracılığıyla uygulamanın kullanıcı arabiriminde kullanıcı seçenekleri olarak sunulabilir. Ayrıca güncelleştirmeleri zorunlu hale getirmek veya önceki bir sürüme geri dönmek için Yayımlama özellikleri kullanılabilir. Daha fazla bilgi için bkz . ClickOnce güncelleştirme stratejisi seçme.

Üçüncü taraf yükleyiciler

ClickOnce yükleyicinizi, uygulamanızla birlikte üçüncü taraf bileşenleri yükleyecek şekilde özelleştirebilirsiniz. Yeniden dağıtılabilir pakete (.exe veya .msi dosyası) sahip olmanız ve paketi dile özgü bir ürün bildirimi ve dile özgü paket bildirimiyle açıklamanız gerekir. Daha fazla bilgi için bkz . Önyükleyici paketleri oluşturma.

ClickOnce araçları

Aşağıdaki tabloda, uygulama ve dağıtım bildirimlerini oluşturmak, düzenlemek, imzalamak ve yeniden imzalamak için kullanabileceğiniz araçlar gösterilmektedir. .NET Core ve .NET 5+ için, MSBuild özniteliklerine benzer seçenekler Yayımla profili kullanılarak ayarlanır.

Araç Açıklama
Güvenlik Sayfası, Proje Tasarımcısı Uygulama ve dağıtım bildirimlerini imzalar. .NET Core ve .NET 5+ için bu ayarlar Yayımlama profilindedir.
Yayın Sayfası, Proje Tasarımcısı Visual Basic ve Visual C# uygulamaları için uygulama ve dağıtım bildirimlerini oluşturur ve düzenler. .NET Core ve .NET 5+ için bu ayarlar Yayımlama profilindedir.
Mage.exe (Bildirim Oluşturma ve Düzenleme Aracı) Visual Basic, Visual C# ve Visual C++ uygulamaları için uygulama ve dağıtım bildirimleri oluşturur.

Uygulama ve dağıtım bildirimlerini imzalar ve yeniden imzalar.

Batch betiklerinden ve komut isteminden çalıştırılabilir.
dotnetmage.exe (Bildirim Oluşturma ve Düzenleme Aracı) .NET 5+ C# ve Visual Basic uygulamaları için uygulama ve dağıtım bildirimlerini oluşturur. Kullanım, Mage.exe eşdeğerdir.

Uygulama ve dağıtım bildirimlerini imzalar ve yeniden imzalar.

Batch betiklerinden ve komut isteminden çalıştırılabilir.
MageUI.exe (Bildirim Oluşturma ve Düzenleme Aracı, Grafik İstemci) Uygulama ve dağıtım bildirimlerini oluşturur ve düzenler.

Uygulama ve dağıtım bildirimlerini imzalar ve yeniden imzalar.
GenerateApplicationManifest görevi Uygulama bildirimini oluşturur.

MSBuild'den çalıştırılabilir. Daha fazla bilgi için bkz . MSBuild başvurusu.
GenerateDeploymentManifest görevi Dağıtım bildirimini oluşturur.

MSBuild'den çalıştırılabilir. Daha fazla bilgi için bkz . MSBuild başvurusu.
SignFile görevi Uygulama ve dağıtım bildirimlerini imzalar.

MSBuild'den çalıştırılabilir. Daha fazla bilgi için bkz . MSBuild başvurusu.
Microsoft.Build.Tasks.Deployment.ManifestUtilities Uygulama ve dağıtım bildirimlerini oluşturmak için kendi uygulamanızı geliştirin.

Aşağıdaki tabloda, bu tarayıcılardaki ClickOnce uygulamalarını desteklemek için gereken .NET Framework sürümü gösterilmektedir.

Tarayıcı .NET Framework sürümü
Internet Explorer 2.0, 3.0, 3.5, 3.5 SP1, 4
Firefox 2.0 SP1, 3.5 SP1, 4
Chrome 3.5
Microsoft Edge 3.5