2010-05-10 6 views
12

यह अगर VSTO 2005 एसई सिर्फ MsiGetProductInfo बुला() उत्पाद कोड {388E4B09-3E71-4649-8921-F44A3A2954A7} के साथ, listed in MSDN रूप से स्थापित किया गया था जांच करने के लिए आसान था।कैसे निर्धारित करें कि वीएसटीओ 2010 रनटाइम स्थापित है या नहीं?

VSTO 2010/4.0 क्रम के लिए उत्पाद कोड क्या है? या यह निर्धारित करने का एक बेहतर तरीका है कि यह पहले से स्थापित है या नहीं? यह हमारी स्थापना प्रक्रिया के लिए है।

इसके अलावा, मैं Windows Imaging Component के लिए एक ही पता लगाने की कोशिश कर रहा हूँ।

उत्तर

9

सबसे आसान तरीका रजिस्ट्री की जांच करने के लिए है।

HKLM \ Microsoft \ VSTO क्रम सेटअप \ v4 \ स्थापित

HKLM \ Microsoft \ VSTO क्रम सेटअप \ v4R \ VSTORFeature_CLR40 (यह 4.0 कार्यालय एक्सटेंशन के लिए है)

+1

दूसरा उत्तर (VSTORFeature_CLR40 के साथ) शायद अधिक सही है। मेरे पास बस एक परिदृश्य था जहां पहली रजिस्ट्री प्रविष्टि (HKLM \ Microsoft \ vsto रनटाइम सेटअप \ v4 \ इंस्टॉल) पाया गया था लेकिन मेरे एडिन लोड नहीं होंगे - और वास्तव में VSTO इंस्टॉल नहीं किया गया था। – PandaWood

+2

क्या कोई यह बताता है कि स्थापित VSTOR40 x86 या x64 है या नहीं? मैंने x86 और x64 रनटाइम्स के सभी संयोजनों को स्थापित किया है, और उपरोक्त वर्णित कुंजियां केवल बनाई गई हैं - सब कुछ WOW6432Node के अंतर्गत है - जिसका अर्थ है कि स्थापित रनटाइम के 'bitness' को निर्धारित करने का कोई तरीका नहीं है ... (ध्यान दें कि Office 2010 32 और 64 बिट स्वाद दोनों में आता है, और उत्पन्न होने वाली .NET प्रक्रियाओं को Office स्थापना के रूप में एक ही बिट-नेस का होगा http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/8d70d66c-fe87-4f38-b154-5804b871e153 /) – Adam

+0

मुझे पता चला है कि 'VSTORFeature_' केवल x64 इंस्टॉल में मौजूद है। X86 इंस्टॉल के लिए कृपया मेरा उत्तर नीचे देखें। –

3

सबसे सुरक्षित और स्पष्ट पद्धति अभी भी है उत्पाद कोड की जाँच, यहाँ वे हैं:

VSTO 2010 x86, संस्करण 10.0.31124 के लिए: {41A01180-D9FD-3428-9FD6-749F4C637CBF}

VSTO 2010 x64 के लिए, संस्करण 10। 0.३१,१२४: {C3600AE6-93A0-3DB7-B7AA-45BD58F133B5}

मैं उन्हें निष्कर्षण द्वारा मिला 7-Zip साथ और ओर्का साथ MSIs का विश्लेषण निम्न पैकेज की सामग्री को:

http://download.microsoft.com/download/F/3/9/F395E3C2-28A0-4F0D-9E20-FF4D1ADB08D8/vstor40_x86.exe

http://download.microsoft.com/download/F/3/9/F395E3C2-28A0-4F0D-9E20-FF4D1ADB08D8/vstor40_x64.exe

14

दुर्भाग्य से जवाब यहां अब तक काफी सभी आधारों को शामिल नहीं है।

उत्पाद कोड

यह विश्वसनीय होना प्रतीत नहीं होता है - हम एक न्यूनतम संस्करण, न कि किसी विशिष्ट संस्करण के लिए देख रहे हैं। 10.0.40303 - - हालांकि उत्पाद कोड सिद्धांत में है सिर्फ अपने मशीन पर, मुख्य संस्करण वेतन वृद्धि के लिए बदलने के लिए VSTO के संस्करण माना की {A0FE0292-D3BE-3447-80F2-72E032A54875} एक उत्पाद का कोड है। इससे पता चलता है कि माइक्रोसॉफ्ट जरूरी नहीं है कि वे उन्हें स्थिर रखें, इसलिए मैं सुझाव दूंगा कि यह एक अच्छा विकल्प नहीं है।/VSTO के संस्करण के लिए खुद को असेम्बली, जो आम तौर पर फ़ाइलें% \ Common Files \ Microsoft साझा \ VSTO \ 10.0% कार्यक्रम में हो सकता है

फ़ाइल संस्करण

एक अन्य विकल्प उपस्थिति की जांच करने के लिए हो सकता है। हालांकि मैं यह कहना चाहता हूँ इस निर्देशिका इसकी गारंटी नहीं है - वास्तविक निर्देशिका रजिस्ट्री में निर्दिष्ट किया जा करने के लिए प्रकट होता है, लेकिन स्पष्ट रूप से इस समाधान अब कोई बस रजिस्ट्री सीधे से संस्करण प्राप्त करने से बेहतर है ...

रजिस्ट्री

तो रजिस्ट्री द्वारा जाकर शायद एकमात्र विकल्प शेष है।

दुर्भाग्य से, VSTO क्रम संस्करण किसी भी 4 में से एक रजिस्ट्री स्थान पर दिख सकता है:

  • \ Microsoft \ VSTO रनटाइम सेटअप \ v4 (32-बिट, HKLM \ SOFTWARE VSTO Office 2010 स्थापना से स्थापित)
  • HKLM \ SOFTWARE \ Microsoft \ VSTO रनटाइम सेटअप \ v4R (32-बिट, VSTO पुनर्वितरण से स्थापित)
  • HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ VSTO रनटाइम सेटअप \ v4 (64 मेरे पास नहीं है: बिट, VSTO Office 2010 स्थापना)
  • HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ VSTO रनटाइम सेटअप \ v4R (64-बिट, VSTO पुनर्वितरण से स्थापित)

नोट से स्थापित इसके लिए एक निश्चित स्रोत - मैं जानकारी के बिट्स को एक साथ जोड़ रहा हूं, उदाहरण के लिए, this blog post by Wouter van Vugt और this SO answer। इससे भी अधिक हो सकता है।

अलावा, वहाँ न्यूनतम संस्करण आवश्यकताओं हो सकता है, हालांकि मुझे लगता है कि व्यवहार में यह केवल Office 2010 के रिलीज संस्करण चला लोगों को प्रभावित करने जा रहा है:

विजुअल स्टूडियो 2010 कार्यालय क्रम के लिए उपकरण माइक्रोसॉफ्ट ऑफिस 2010 के साथ जहाज भी। हालांकि Office 2010 RTM के समय, Office के साथ रनटाइम केवल Office समाधान का समर्थन करता है जो .NET Framework 3.5 को लक्षित करता है। यदि आपका समाधान .NET Framework 3.5, को लक्षित करता है तो यह या तो चला सकता है यदि Office 2010 स्थापित है या यदि Visual Studio 2010 Office Runtime पुनर्वितरण योग्य उपकरण के लिए उपकरण स्थापित है। यदि आपका कार्यालय समाधान .NET Framework 4 को लक्षित करता है, तो आपको Office रनटाइम (citation) के लिए विजुअल स्टूडियो 2010 टूल्स को पुनर्वितरण करना होगा।

0

वे कुंजी आपके द्वारा इंस्टॉल किए जा रहे ओएस द्वारा भिन्न होती हैं। मैं दृढ़ता से स्टैंडअलोन vsto और कार्यालय 2010 और 2013 .exe x86 और x64 में स्थापित किया है।

64 के लिए

: आदेश अगर VSTO स्थापित किया गया है की जाँच करने के लिए रजिस्ट्री का उपयोग करने में, आपको निम्न कुंजी के अस्तित्व की पुष्टि करने की जरूरत है

  • HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ \ Wow6432Node \ Microsoft \ VSTO रनटाइम सेटअप> स्थापित

  • HKLM \ SOFTWARE \ v4 - - VSTO रनटाइम सेटअप \ v4> ProductCode

x86 के लिए

:

  • \ Microsoft HKLM \ SOFTWARE \ VSTO रनटाइम सेटअप -> InstallerPath

संपादित करें: क्या मैं वास्तव में, कर समाप्त हो गया था कि यह सत्यापित v4 फ़ोल्डर मौजूद है।

-2

यहां कोड। सार्वजनिक विधि में हम निर्धारित करते हैं कि VSTO Office या VSTO रनटाइम पैकेज से स्थापित है। निजी विधि में, संस्करण है अगर जाँच के बराबर या संस्करण VSTO2010

public static bool CheckVSTO2010 () { 
 
     string regFragment = IntPtr.Size == 8 ? "\\Wow6432Node\\" : "\\"; 
 
     string regVSTO = string.Format(@"SOFTWARE{0}Microsoft\VSTO Runtime Setup\", regFragment); 
 
     return CheckVSTOVersion(regVSTO + "v4\\") || CheckVSTOVersion(regVSTO + "v4R\\"); 
 
    } 
 

 

 
    private static bool CheckVSTOVersion (string keyPath) { 
 
     using (var key = Registry.LocalMachine.OpenSubKey(keyPath)) { 
 
      //Not installed 
 
      if (key == null) { 
 
       return false; 
 
      } 
 
      var releaseKey = key.GetValue("Version"); 
 
      if (releaseKey != null && !string.IsNullOrEmpty(releaseKey.ToString())) { 
 
       var version = new Version(releaseKey.ToString()); 
 
       return version.Major >= 10 && version.Build >= 40820; 
 
      } 
 
     } 
 
     return false; 
 
    }

+2

हालांकि कोड की सराहना की जाती है, यह हमेशा एक साथ स्पष्टीकरण होना चाहिए। यह लंबा नहीं होना चाहिए, लेकिन इसकी उम्मीद है। – peterh

0

जब SCCM 2012 में एक आवेदन के रूप में Vstor की तैनाती मैं निम्नलिखित PowerShell का इस्तेमाल किया मैं इस का पता लगाने का एक तरीका की जरूरत से भी बड़ा डब्ल्यूएमआई से जानकारी प्राप्त करने के लिए स्क्रिप्ट।

यदि संस्करण 10.0.50908 है, तो आउटपुट उत्पन्न होता है। एससीसीएम पहचान करने के लिए पहचान को समझने पर विचार करता है अगर पहचान स्क्रिप्ट कोई मूल्य देता है।

$VstorVersion = Get-WmiObject -Query "select ProductVersion from SMS_InstalledSoftware where ARPDisplayName = 'Microsoft Visual Studio 2010 Tools for Office Runtime (x64)'" -NameSpace "root\cimv2\sms" 
if ($VstorVersion.ProductVersion -ge '10.0.50908') {Write-Host "Found"} 
संबंधित मुद्दे

 संबंधित मुद्दे