Aracılığıyla paylaş


Visual Studio Installer Dağıtımı

Windows Installer dağıtımı, kullanıcılara dağıtılmak üzere yükleyici paketleri oluşturmanızı sağlar; kullanıcı kurulum dosyasını çalıştırır ve uygulamayı yüklemek için sihirbazı takip eder. Bunu, çözümünüze bir Kurulum projesi ekleyerek gerçekleştirebilirsiniz. Proje yapılandırıldığında kullanıcılara dağıtılan bir kurulum dosyası oluşturur; kullanıcı kurulum dosyasını çalıştırır ve uygulamayı yüklemek için sihirbazı takip eder.

Microsoft Windows Installer, verilerle çalışan bir yükleme ve Windows işletim sisteminin bir parçası olarak gönderilen yapılandırmadır. Windows Installer dosyalar, kayıt defteri anahtarları ve bileşenleri de içeren yüklenmiş her uygulama hakkında bilgileri içeren bir veritabanı bulundurur. Bir uygulama kaldırıldığında, işlem gerçekleştirilmeden önce bir dosya, kayıt defteri anahtarı veya bileşene bağlı başka uygulama olmadığından emin olmak için veritabanını kontrol eder. Bu, bir uygulamanın kaldırılmasının başka bir uygulamayı etkilemesini engeller.

Not

Express Edition'lar Windows Installer teknolojisini içermez. Express Edition'larda kullanılan dağıtım teknolojisi hakkında daha fazla bilgi için, bkz. ClickOnce Güvenliği ve Dağıtımı.

Windows Installer tarafından sağlanan işlevsellik ile Visual Studio'daki dağıtım araçlarını kullanarak, uygulamalarınızı dağıtabilir ve bakımını sağlayabilirsiniz.

Yükleyici Paketi Oluşturma

Uygulamanızı ve uygulamaya ait önkoşulları dağıtmak için bir yükleyici paket kullanmalısınız. Genellikle uygulamalar, .NET Framework, SQL Server Express, hatta bazı özel EXE veya DLL'ler üzerinde bağımlılıklara sahiptir. Ancak, son kullanıcının .NET Framework'ün belirli bir sürümüne veya uygulamanın ilgili olduğu diğer bağımlılıklara sahip olup olmadığı belirsiz bir durumdur. Bu nedenle, uygulamanızı son kullanıcının bilgisayarına kopyalamak önerilmez.

Yükleme Konumu

Son kullanıcılarınız uygulamanızı Web, CD, ağ dosya paylaşımı veya diğer alternatifleri kullanarak yükleyebilir. Yükleme konumu, kullanabileceğiniz proje şablonunu etkiler. Örneğin, son kullanıcıların Web'den yükleme yapmasını isterseniz, Web Kurulum projesi şablonu kullanabilirsiniz. CD veya ağdan yüklemek için, Kurulum projesi şablonunu kullanın. Proje şablonlarını dağıtma hakkında daha fazla bilgi için, bkz. Kurulum ve Dağıtım Projeleri.

Dosyalar ve Klasörler

Dağıtım dosyalarının nasıl ve nereye yükleneceğini denetlemek için Dosya Sistemi Düzenleyicisi'ni kullanabilirsiniz. Dosya sisteminin organizasyonu bir bilgisayardan diğerine değişebilir ve klasör isimleri de farklı olabilir; Dosya Sistemi Düzenleyicisi dosyaların istediğiniz yerde yüklendiğinden emin olmak için soyut klasörler kavramını kullanır. Daha fazla bilgi için bkz. Dağıtımda Dosya Yükleme Yönetimi.

Sanal klasörler Windows sistem klasörlerini temsil eder. Örneğin, Desktop Klasörü, Desktop sistem klasörüne eşdeğerdir. Windows sistem klasörlerinin konumunu izler, bundan dolayı klasörün nerede bulunduğu ve nasıl isimlendirildiğine bakılmaksızın, Desktop Klasörü'nde bulunan dosyalar daima Desktop sistem klasöründe olur. Daha fazla bilgi için bkz. Özel (Special - Custom) Klasörler.

Kendi dosyalarınızı da oluşturup herhangi bir sistem klasörü altındaki bir konuma yerleştirebilirsiniz. Örneğin, Uygulama Klasörü altında Uygulama Verisi klasörü oluştrabilirsiniz. Uygulama Klasörü'nün hedef bilgisayardaki konumuna bakılmaksızın, Uygulama Verisi klasöründe bulunan dosyalar her zaman aynı ilişkili konuma yüklenecektir. Daha fazla bilgi için bkz. Nasıl Yapılır: Dosya Sistemi Düzenleyicisine Klasör Ekleme / Kaldırma.

Dosya Sistemi Düzenleyicisi'ndeki klasörler dosyalar, proje çıktıları ve derlemeler içerebilir. Proje çıktıları çözüm içindeki diğer projede bulunan öğeleri temsil eder ve birincil oluşturma çıktısı (Örneğin, çalıştırılabilir dosya), yerelleştirilmiş kaynaklar, sembolik hata ayıklama bilgileri, içerik dosyaları (Örneğin, HTML sayfaları) ve proje kaynak dosyalarını içerebilir. Bu çıktıların her biri, proje çıktı grubu olarak adlandırılır; bir proje çıktı grubu birincil çıktı (Anahtar çıktı olarak da bilinir.) ve tüm ek çıktı ve bağımlılıkları içerir. Daha fazla bilgi için, bkz:Nasıl Yapılır: Dosya Sistemi Düzenleyicisinde Proje Çıktısı Ekleme / Çıkarma ve Nasıl Yapılır: Dağıtım Projesine Öğeler Ekleme.

Ayrıca, koşullar Koşul özelliğini kullanarak herhangi bir dosyaya veya klasöre eklenebilir. Bu, yükleme sırasında hedef bilgisayarda varolan koşullara göre dosyaların yüklemesini özelleştirmeyi sağlar. Örneğin, hedef bilgisayarda işletim sisteminin sürümüne bağlı olarak farklı dosyaları yüklemeyi seçebilirsiniz. Daha fazla bilgi için bkz. Condition Özelliği.

Dosya Sistemi Düzenleyicisi ayrıca kısayol oluşturmayı destekler. Bu dosyaları bir klasöre yerleştirip masaüstünden veya başka bir klasörden kısayol ile bunları işaret etmenizi sağlar. Daha fazla bilgi için bkz. Nasıl Yapılır: Dosya Sistemi Düzenleyicisine Kısayol Ekleme / Kaldırma.

Dosya İlişkileri

Bir uygulama dağıttığınızda, genellikle bir dosya türünü uygulama ile ilişkilendirmek istersiniz. Örneğin, uygulamanız .myfile uzantısı ile dosyalar oluşturup kullanıyorsa, uygulamanızın .myfile dosya türü ile ilişkilendirilmesini istersiniz. Bu kullanıcı .myfile dosyasını çift tıkladığında uygulamanızın açılmasını sağlayacaktır.

Visual Studio içindeki dağıtım araçları, belge türlerini belirtmenizi ve bunları dosya uzantıları ile ilişkilendirmenizi sağlayan Dosya Türleri Düzenleyicisi'ni içerir. Ayrıca, her belge türü için fiilleri ve eylemleri ve tarayıcılarda kullanılması için MIME türlerini belirtebilirsiniz. Daha fazla bilgi için bkz. Dağıtımda Dosya Türleri Yönetimi.

Yükleme sırasında, Dosya Türleri Düzenleyicisi'nde belirttiğiniz ayarlar hedef bilgisayarda güncelleştirilir.

Kayıt Defteri

Bir uygulama dağıtımının tümleşik bir parçası genellikle kayıt defterine erişmeyi, kayıt defteri değerlerini ayarlamayı veya kayıt defteri anahtarları oluşturmayı kapsar. Visual Studio içindeki dağıtım araçları bu işlevi sağlar.

Visual Studio içindeki Kayıt Defteri Düzenleyicisi, Windows Kayıt Defteri Düzenleyicisi'ne benzer: Her iki araç da, hedef bilgisayarda kayıt defterinin hiyerarşik bir gösterimini sağlar. Standart kayıt defteri kökleri temsil edilir. Varolan anahtarlar için değerleri değiştirebilir, yeni anahtarlar için değerler ekleyebilir ve varsayılan anahtarları belirtebilirsiniz. Daha fazla bilgi için bkz. Dağıtımda Kayıt Defteri Ayarları Yönetimi.

Bu, yükleme sırasında Kayıt Defteri Düzenleyicisi'nde belirtilen anahtarlar ve değerler hedef bilgisayarın kayıt defterine yazılır.

Ayrıca, Koşul özelliğini kullanarak herhangi bir kayıt defteri anahtarı veya değeri için koşullar koyabilirsiniz. Yükleme sırasında hedef bilgisayarda varolan koşullara bağlı olan kayıt defterini özelleştirmenize izin verir. Örneğin, hedef bilgisayardaki işletim sistemi sürümüne bağlı olarak farklı bir kayıt defteri değeri girmek isteyebilirsiniz.

Authenticode İmzalama

Bir uygulamayı veya bileşeni, kullanıcıların uygulamayı kimin yayımladığını ve güvenli olduğunu doğrulamasını sağlamak için, imzalamak isteyebilirsiniz. Web tarayıcısı aracılığıyla karşıdan yüklenen Cab dosyaları ve yükleyicileri imzalamanızı öneririz.

Microsoft Authenticode teknolojisini kullanarak bir yükleyiciyi, birleştirme modülünü veya Cab dosyasını imzalamak için Visual Studio dağıtım araçlarını kullanabilirsiniz. Uygulamanızı veya bileşenleri imzalamak için, ilk olarak dijital bir sertifika almalısınız.

Authenticode imzalama kullanmak için, dağıtım projenizde imzalanmış ClickOnce bildirimlerini etkinleştirmelisiniz. Daha fazla bilgi için bkz. Sayfa, imzalama Proje Tasarımcı.

Genel Bütünleştirilmiş Kod Önbelleği

Genel bütünleştirilmiş kod önbelleği, bazı uygulamalar tarafından paylaşılması gereken derlemeleri depolamak için kullanılan .NET Framework tarafından sağlanan bir kod önbelleğidir. Genel bütünleştirilmiş kod önbelleğinde yüklenmiş olmak için, derleme uygulama veya bileşene başka bir yazılımın tanımlamak ve açıkça başvurmak için kullanabileceği benzersiz bir kimlik veren tanımlayıcı bir isme sahip olmalıdır. Daha fazla bilgi için bkz. Nasıl Yapılır: (Visual Studio) bir bütünleştirilmiş kod imzalama.

Genel bütünleştirilmiş kod önbelleği için bir derleme yüklemek üzere, Dosya Sistemi Düzenleyicisi'nde Genel Bütünleştirilmiş Kod Önbellek'i derlemesi için derleme veya proje çıktı grubu ekleyin. Düzenleyiciyi açmak için, Görünüm menüsünde, Düzenleyici'ninn üstüne gelin ve Dosya, Sistem, Düzenleyici'yi tıklayın.

Genel Bütünleştirilmiş Kod Önbelleği klasörü, Dosya Sistem Düzenleyicisi'ndeki diğer klasörlere benzemez. Ayarlanabilir özelliği yoktur ve bu klasörde başka klasör için kısayollar veya derlemeler oluşturamazsınız.

Önkoşulları Seçme

Bir uygulamayı başarıyla dağıtmak için, uygulamanın başvurduğu tüm bileşenleri de dağıtmanız gerekir. Örneğin, Visual Studio ile oluşturulan çoğu uygulamada, .NET Framework'e bir bağımlılık vardır. Ortak dil çalışma zamanının gerekli sürümü, uygulama yüklenmeden önce hedef bilgisayarda mevcut olmalıdır. Visual Studio içindeki dağıtım araçları, .NET Framework'ü ve diğer bileşenleri yüklemenizin bir parçası olarak yüklemenizi sağlar. Önkoşul bileşenlerini yükleme işlemi, bootstrapping olarak da bilinir.

Daha fazla bilgi için, bkz. Nasıl Yapılır: Windows Installer Dağıtımında Önkoşulları Yükleyin

Yönetici Ayrıcalıkları ile Yükleme

Yönetici yüklemesi, bir ağ paylaşımında uygulamanın kaynak görüntüsünü yükleminize izin veren Microsoft Windows Installer'ın bir özelliğidir. Ağ paylaşımı erişimine sahip bir çalışma grubundaki kullanıcılar, bu durumda kaynak görüntüden uygulamayı yükleyebilirler.

User Interface Düzenleyicisi yönetici aracılığıyla komut satırını kullanarak bir ağ paylaşımına uygulama yüklerken görüntülenen yükleme iletişim kutularını farklı bir kümesi belirtmenize olanak tanır /a komut satırı seçeneği (msiexec /aInstallerName). Daha fazla bilgi için bkz. Dağıtımda Kullanıcı Arayüzü Yönetimi.

Not

Yönetici yüklemesi aracılığıyla bir uygulama yüklediğinizde, önyükleyici uygulama dosyaları (Gerektiğinde, Windows Installer'ı yükleyen dosyalar) Önyükleyici özelliği Windows Installer Önyükleyicisi olarak ayarlansa bile sunucuya kopyalanmaz. Önyükleyici uygulama dosyaları, yükleme için gerekliyse, Instmsia.msi, Instmsiw.msi, Setup.exe ve Setup.ini dosyalarını el ile sunucuya kopyalamanız gerekir. Bu dosyalar uygalamanıza ait .msi dosyası ile aynı dizinde bulunabilir.

Daha fazla bilgi için, Administrative Installation (Windows Installer)'daki Windows Installer SDK belgelerine bakın.

Windows ve Yükseltme

Windows Installer teknolojisi, Windows Vista ve Windows 7 işletim sistemleri üzerinde yazılım yüklemeyi destekler. Uygulamaları yükleyen son kullanıcı, kullanıcının bilgisayarı Kullanıcı Hesabı Denetimi (UAC) altında dahi çalıştığında yalnızca yükseltme gerektiren her bileşen yüklemesi için istemler almalıdır.

Uygulama Yükseltme

Genellikle, Setup.exe (önyükleyici olarak da bilinir) yükseltilmiş olarak çalışmaz; kullanıcının güncel izin düzeyinde çalışır. Bu nedenle son uygulama yüklemesi başladığında, yükleme isteminde bulunmaz. Ancak, Setup.exe yapmazken .msi dosyasının kullanıcıya genellike istem gönderdiğini göz önünde bulundurun.

Önyükleyicinin gömülü UAC bildiriminde, requestedExecutionLevel düğümü yüklemenin güncel kullanıcı olarak çalıştığını belirtir (asInvoker):

<requestedExecutionLevel level="asInvoker" />

Bunun yanında gerekirse uygulama yüklemesini yükseltebilirsiniz. Örneğin, bir Web Kurulum projesinde Internet Information Services (IIS) ayarlarını değiştirme genel bütünleştirilmiş kod önbelleğine derlemeler yüklemede olduğu gibi yönetici izinlerini gerektirir. Yükseltme istemi önkoşul yüklemeleri sonrası ve uygulama yüklemesi öncesinde ortaya çıkar.

Bir yükleme için izinleri yükseltmek üzere, proje (.vdproj) dosyasını açın. Proje dosyasının MsiBootstrapper bölümünde, RequiresElevation özelliğini True olarak ayarlayın. Bu özellik Visual Studio tümleşik geliştirme ortamı (IDE) aracılığıyla erişilebilir değildir. Bu nedenle, proje dosyasını kullanmanız gerekir. Daha fazla bilgi için bkz. RequiresElevation Özelliği.

Yönetici Yardımıyla Yükseltme

Windows Installer, Windows Vista ve Windows 7 üzerinde yönetici yardımıyla yükseltmeyi destekler. Bu senaryoda, yönetici kimlik bilgileri kullanıcıdan istenir ve yönetici kullanıcı parolasını girer. Bu senaryoyu desteklemek için, önyükleyici, bilgisayarınız Windows Vista ya da daha sonraki bir Windows sürümünde çalışıyorsa AdminUser özelliğini True olarak ayarlar.

Not

UAC kullanmayan ve sizin yönetici olmadığınız bir bilgisayarda Windows Vista çalıştırıyorsanız, AdminUser hala True olarak ayarlanacaktır. Bu nedenle, (SQLExpress32.exe gibi) .exe yükleyicilerinin uygun izinleri algılayacak ve yetersiz izin durumunda belirli bir çıkış kodu oluşturacak şekilde yazılması gerekir. Setup.exe'yi bu çıkış kodunu yakalayıp yöneticinin gerekliliğini ifade eden bir ileti gösterecek şekilde yazmalısınız.

Önkoşul Yükseltmesi

Windows Vista ve Windows 7 gerekli olduğunda önkoşul bileşen yüklemesini yükseltir. Önyükleyicinin kendisi hiçbir yükseltme gerçekleştirmez; Windows Vista veya Windows 7, UAC altında çalıştığı zaman zaten yüklü değilse yükseltilmesi gereken her ön koşul bileşeni için bir istem düzenler. Bir paket yükseltmesi başarısız olursa, önyükleyici de başarısız olur ve uygun bir hata iletisi gönderir.

Özel Eylem Yükseltmesi

Özel Eylemler Düzenleyicisi'nde oluşturduğunuz özel eylemler yükseltilmiş olarak çalışır. Özel eylemler kayıt defteri veya dosya sistemi gibi kullanıcıya özel verilere erişmemelidir, çünkü özel eylem çağrılan kullanıcının hesabında çalışmaz.

Varsayılan olarak, özel eylemler yükseltilmiş olarak çalışır çünkü NoImpersonate özelliğinin varsayılan ayarı Özel Eylemler Düzenleyicisi'nde True olur. NoImpersonate'i False olarak değiştirmek özel eylemi çağrılan kullanıcıyı taklit etmeye zorlayacaktır, ki bu kullanıcı azaltılmış izinlere sahip olabilir.

Visual Studio Sürümleri Arasındaki Farklar

UAC altında çalışacak Visual Studio 2005 ve Visual Studio 2008 Kurulum projeleri arasında da farklar olacağını göz önünde bulundurun.

Windows Vista veya Windows 7 yerleşik yükleyici tesbiti, UAC altında çalıştığınızda onay için istem gönderir. Visual Studio 2005 ile oluşturulmuş bir önyükleyici (Setup.exe) yüklenenin ne olduğuna bakmaksızın daima onaylamak için istem gönderir. Setup.exe ve tüm alt işlemler Windows Vista ve Windows 7 üzerinde yönetici belirteciyle çalıştığı için son uygulama yüklemesi yükseltilmiş ayrıcalıklarla yüklenir. Bir kullanıcı yönetici yardımıyla yükseltme kullanarak çalışırsa, uygulama yöneticinin değil de yükseltilmiş kullanıcın profili altında yüklenir.

Visual Studio 2008 ve Visual Studio 2010 içinde, Setup.exe başlatıldığında yükseltme için istem göndermez. Yükseltme istemini engellemek için, önyükleyicinin gömülü bildirimi Setup.exe'nin, asInvoker'ın istenilen çalıştırma düzeyi ile çalıştığını belirtir. Bu, önkoşul bileşenleri yüklemesi için yükseltmenin hala gerekli olmasına rağmen, son uygulama yüklemesinin yükseltilmeden çalışması imkanını verir. Önyükleyici önkoşulları başlatmak için ShellExecute'u çağırır. Windows Vista veya Windows 7 bu çağrıyı alır, yükleme tesbitini gerçekleştirir ve yükelemeden önce bir kullanıcı istemi düzenler.

Bu değişikliğin olumsuz yanı, uygulamanın yanında yüklenmesi gereken her önkoşul bileşeni için bir istem düzenlemesini gerektirmesidir. Bunun yanında, tüm önkoşullar zaten bilgisayar üzerinde ise, yükleme hiçbir isteme neden olmayabilir. Ayrıca, yükseltme gerektiren harici denetimleriniz olmamalıdır. Harici denetimler çalışmaz ama kullanıcı yükleyici için yapılan istemlerin yanında her harici denetim için birkaç yükseltme istemi alır.

Ayrıca bkz.

Görevler

Kurulum ve Dağıtım Projelerinde Sorun Giderme

Başvuru

Dağıtım Hataları ve Desteği

Kavramlar

Kurulum ve Dağıtım Projeleri

Diğer Kaynaklar

Uygulamaları ve Bileşenleri Dağıtma

Dağıtım Düzenleyicileri

Dağıtım Görevleri ve Yönergeler

Dağıtım İletişim Kutuları

Dağıtım Örnekleri ve Yönergeler