wix - microsoft - मायक्रोसॉफ्ट वर्ड




पता लगाएँ कि रजिस्ट्री का उपयोग कर एमएस ऑफिस 32bit या 64 बिट स्थापित है (3)

मैं श्रेष्ठ संस्करण (32 बिट या 64 बिट) के आधार पर vsto addin इंस्टॉल करना चाहता हूं। मैं 32bit और 64 बिट दोनों एमएसआई को बांधे रखने की योजना बना रहा हूं और एक्सल संस्करण का निर्धारण करके एक स्थापित कर रहा हूं। मैं यह पता लगाने में सक्षम हूं कि क्या 2010 कार्यालय 32 बिट या 64 बिट रजिस्ट्री का उपयोग कर रहा है या नहीं। पता लगाएँ कि क्या कार्यालय 32 बिट या 64 बिट रजिस्ट्री के जरिए है, लेकिन मैं 2007 और 2013 की श्रेष्ठता की जांच करना चाहता हूं कि क्या वे 32 बिट या 64 बिट हैं क्या उन्हें रजिस्ट्री के माध्यम से पता लगाना संभव है?



आप इसे विश्वसनीय तरीके से रजिस्ट्री (प्रत्यक्ष कॉल) से नहीं देख सकते हैं C # या VB.net में कस्टम इंस्टॉलर मॉड्यूल बनाने के लिए बेहतर है, आवेदन के उत्पादकोड को प्राप्त करें। उत्पाद कोड से, आप Bitness प्राप्त कर सकते हैं।

उत्पाद कोड को भी रजिस्ट्री से प्राप्त किया गया है, लेकिन Office एप्लिकेशन इसे संभाल दें

Private IsExcel32Bit As Boolean = False
Private IsExcel64Bit As Boolean = False
Private ReadOnly STR_prdCodeDelimeter As Char = CChar("-")

Private Sub GetExcelBitness(ByVal exApp As Microsoft.Office.Interop.Excel.Application)
    Dim prdCode As String = exApp.ProductCode
    If Not String.IsNullOrEmpty(prdCode) AndAlso CInt(prdCode.Split(STR_prdCodeDelimeter)(3)(0).ToString) = 0 Then
        IsExcel32Bit = True
    ElseIf Not String.IsNullOrEmpty(prdCode) AndAlso CInt(prdCode.Split(STR_prdCodeDelimeter)(3)(0).ToString) = 1 Then
        IsExcel64Bit = True
    End If
End Sub

दोनों इंस्टॉलर को अलग-अलग रखते हुए बीटीडब्ल्यू आपको भविष्य में मदद करने जा रहा है। कभी-कभी उत्पाद कोड शून्य या गलत हो सकता है यदि एमएस ऑफिस ठीक से स्थापित नहीं होता है


दिये गए: Office32 को "प्रोग्राम फाइल (x86)" में स्थापित किया गया है, यह मेरे लिए काम करता है

मैं मूल रूप से यह देखने की जांच करता हूं कि क्या winword.exe कुंजी के नीचे कहीं है। अगर वे शब्द भाग स्थापित नहीं करते हैं, ठीक है, इस बिंदु पर कठिन। मैं इस का उपयोग कार्यालय के लिए 32-बिट या 64-बिट एमएसआई इंस्टॉलर को चरम रूप से चलाने के लिए करता हूं।

<Fragment>
<Property Id="IS_32BITOFFICE">
  <DirectorySearch Path="[ProgramFilesFolder]\Microsoft Office"                  
                   Depth="4"                   
                   AssignToProperty="no"                   
                   Id="IS_32BIT_OFFICE_DIRSEARCH">
    <FileSearch   Name="winword.exe" />
  </DirectorySearch>
</Property>

<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
  <Component Id="WIN64_OFFICE32_MSI">
    <File Id="WIN64_OFFICE32_MSI" src="WIN64_OFFICE32.txt"/>
    <Condition>IS_32BITOFFICE</Condition>
  </Component> 
  <Component Id="WIN64_OFFICE64_MSI">
    <File Id="WIN64_OFFICE64_MSI" src="WIN64_OFFICE64.txt"/>
    <Condition>NOT IS_32BITOFFICE</Condition>
  </Component> 
    </ComponentGroup>
</Fragment>