8

Visual C++ Çalışma Zamanı 8.0 sp1'e bağlı özel eylemleri kullanan bir InstallShield yüklemem var. Geçmişte, Microsoft tarafından Visual Studio ile sağlanan birleştirme modülünü kullanarak çalışma zamanını yükleyebildim. Visual C++ Runtime 8.0 sp1'in yan yana yüklemesinin Vista üzerinde çalışmasına dayalı olarak, çalışma zamanı yükleme işleminin gerçekleştirilme sırasına kadar kullanılamaz.Visual C++ Runtime 8.0'ın yüklü olup olmadığını program aracılığıyla nasıl belirleyebilirim?

Bu, özel eylemlerimin yürütülmesini taahhüt sırasına taşımam gerektiği anlamına gelir (bir şey ters gittiğinde yükleme bu sıra sırasında geri alınamazsa istenmeyen) veya kurulumdan önce Visual C++ Çalıştırıcısı'nı yüklemem gerekir bir InstallShield önkoşulu kullanarak.

Visual C++ Çalışma Zamanı'nı bir önkoşul olarak yüklemeyi tercih ederim, ancak bunun için bir önkoşul InstallShield tarafından sağlanmıyor, bu yüzden kendi yazmam gerekiyordu. Çalışma zamanını yüklemek için önkoşulun nasıl yapılandırılacağını anlayabildim, ancak zaten yüklü olup olmadığını nasıl anlayacağımı bilmiyorum. Bunu belirlemek için kontrol edebileceğim bir kayıt defteri anahtarı veya dosya sürümü var mı?

+0

Visual C++ 2010 çalışma zamanı algılamaya çalışan herkes için, burada iyi yönergeler bulabilirsiniz: http://blogs.msdn.com/b/astebner/archive/2010/05/05/10008146.aspx – ephere

cevap

10

Visual C++ Runtime 8.0 ve Visual C++ Runtime 8.1'u tanımlayan açıklayan blog gönderilerini buldum. Temel olarak, her bir çalışma zamanı için ürün kodlarını aramak için MSI Otomasyon Arayüzünü kullanabilirsiniz.

Ayrıca Microsoft \ Windows \ CurrentVersion \ Uninstall \ [ProductCode] [ProductCode] algılamak için çalışıyoruz zamanında ürün kodudur (örn. {7299052b- \ HKEY_LOCAL_MACHINE \ SOFTWARE için görünebilir 02a4-4627-81f2-1818da5d550d}, 8.0 sp1 çalışma zamanının x86 sürümü için ürün kodudur).

Bu yöntemler, yalnızca çalışma zamanı yeniden dağıtılabilir paketinin yüklü olup olmadığını algılamaya çalışır; Bu yöntemlerin belirtmemesi (örneğin, yeniden dağıtılabilenleri kullanmak yerine bir birleştirme modülü olarak yüklenmişse), çalışma zamanının yüklenebilmesi mümkündür, ancak bu durumda yeniden dağıtılabilir paketi yüklemek için hiçbir şey zarar vermemelidir. .

İlgili konular