Aracılığıyla paylaş


Dağıtım Yöntemini Seçme

Çoğu durumda Visual C++ uygulamalarının dağıtımı Windows Installer dağıtımı ile yapılır.Desteklenen Visual Studio ve alternatifleri içinde dağıtım yöntemleri ile ilgili daha fazla bilgi için bkz. Dağıtım Stratejisini Seçme ve Deployment Alternatives.Visual C++ yerel uygulamaları için ClickOnce dağıtımı Visual Studio 2010 üzerinde desteklenmemektedir, ancak Visual C++ uygulamalarını ClickOnce aracılığıyla komut satırı üzerinden dağıtmak mümkündür.Daha fazla bilgi için bkz. Visual C++ Uygulamaları için ClickOnce Dağıtımı.

Visual C++ Kitaplıkları Paylaşılan DLL'lerdir

Visual Studio 2010 Visual C++ kitaplıklarını %windir%\system32 dizininde paylaşılan DLL'ler olarak yükler.Visual C++ uygulamanızın Visual C++ yüklü olmayan bilgisayarda çalışacağından emin olmak için, Visual C++ DLL'lerini uygulamanız ile yeniden dağıtmanız ve hedef bilgisayarda yüklenmiş olduklarından emin olmanız gerekebilir.

Visual C++ Kitaplıklarını Yeniden Dağıtma

Visual C++ DLL öğesini yeniden dağıtmanın üç yolu var:

  • Tüm Visual C++ kitaplıklarını %windir%\system32'de paylaşılan DLL'ler olarak yüklemek için Visual C++ Yeniden Dağıtılabilir Paket (VCRedist_x86.exe, VCRedist_x64.exe, VCRedist_ia64.exe) kullanmanızı öneririz.Visual Studio bu paketi %WindowsSdkDir%\Bootstrapper\Packages klasörüne yükler.Ayrıca bunu Microsoft İndirme Merkezi web sitesinden indirebilirsiniz.Bu paketin nasıl kullanılacağına yönelik bir örnek için bkz. İzlenecek Yol: Visual C++ Yeniden Dağıtılabilir Paket Kullanarak Bir Visual C++ Uygulaması Dağıtmak.

  • %windir%\system32' de belirli bir Visual C++ kitaplığını paylaşılan DDL'ler olarak yüklemek için Visual C++ Yeniden Dağıtılabilir Birleştirme Modülleri kullanın.Bu klasöre erişim, yükleyici uygulamanın yönetici haklarına sahip bir kullanıcı tarafından çalıştırılmasını gerektirir.Daha fazla bilgi için lütfen bkz. Birleştirme Modüllerini Kullanarak Yeniden Dağıtma.Bu dağıtım örneği, İzlenecek yol: Visual C++ Uygulamasını Kurulum Projesi Kullanarak Dağıtma bağlantısında bulunabilir.

  • Uygulama için belirli bir Visual C++ DLL'sini Program Files\Microsoft Visual Studio v10.0\VC\Redist\debug_nonredist dizininde sağlanan dosyaları kullanarak yükleyin.Bu yol, uygulama yüklemelerinin yönetici haklarına sahip olmayan kullanıcılar tarafından yapılabilmesi veya bir paylaşımdan bir uygulamanın çalıştırılmasının olanaklı olması gerektiği zamanlar için önerilmektedir.

Yeniden dağıtılabilir birleşme modülleri kullanarak Visual C++ kitaplıklarını yüklerken, DLL'ler %windir%\system32'de paylaşılan DLL'ler olarak dağıtılır.Bu klasöre erişim, yükleyici uygulamanın yönetici haklarına sahip bir kullanıcı tarafından çalıştırılmasını gerektirir.

Yükleme, yönetici hakları olmayan bir kullanıcı tarafından çalıştırılırsa, yükleme Visual C++ DLL'lerini dağıtmada başarısız olur ve uygulama çalışmaz.Ayrıca, bazı ürünler kullanıcı başına yüklemeye izin verebilir, ancak birleştirme modülleri, kitaplıkları paylaşılan konumlara yükler ve sistemdeki tüm kullanıcıları etkiler.Bunlarda ve benzer senaryolarda, belirli bir kullanıcının uygulama dizinine gerekli DLL'leri yüklemek desteklenen tekniktir.

Bu teknik ile DLL'leri uygulamanın yerel klasörüne kopyalamanız yeterlidir.İşletim sistemi yükleyicisi, uygulamayı yürütürken LoadLibraryEx öğesinde açıklanan arama sırasını kullanır.

Visual C++ kitaplıklarının yanlış dağıtılması, onlara bağımlı olan bir uygulamanın çalıştırılması esnasında çalışma zamanı hatalarına neden olabilir

Statik Bağlantı Yerine Dinamik Bağlantıyı Tercih Etme

Visual C++ kitaplıklarına statik olarak bağlanan C/C++ uygulamalarını dağıtma önerilmez.Bir Programı Visual C++ kitaplıklarına statik olarak bağlayarak bir uygulamanın performansını önemli ölçüde arttırmanın mümkün olduğu sık sık yanlışlıkla düşünülür.Ancak, dinamik yüklenen Visual C++ kitaplıklarının performans üzerindeki etkisi hemen hemen tüm durumlarda önemsizdir.Ayrıca, statik bağlama, uygulamaya ve onun bağımlı kütüphanelerine, uygulamanın yazarı veya Microsoft tarafından hizmet verilmesine izin vermez.Örneğin, statik olarak belirli bir kitaplığa bağlanmış, bir istemci bilgisayarı üzerinde bu kitaplığın yeni bir sürümüyle çalışan bir uygulamayı ele alın.Uygulama hala bu kitaplığın önceki sürümlerindeki kodları kullanmaktadır ve güvenlik iyileştirmeleri gibi kitaplık iyileştirmelerinden yararlanmaktadır.C/C++ uygulamalarının yazarlarına, hizmet senaryosunu statik olarak bağımlı kitaplıklara bağlamadan önce düşünmeleri ve de mümkün olduğunca dinamik bağlama kullanmaları şiddetle tavsiye edilir.

Ayrıca bkz.

Kavramlar

Dağıtım Stratejisini Seçme

ClickOnce Güvenliği ve Dağıtımı

Dağıtım Örnekleri

Diğer Kaynaklar

Masaüstü uygulamaları dağıtma (Visual C++)

Windows Installer Deployment Overview