2012-11-15 10 views
5

ठीक है, मुझे कुछ याद आ रहा है। मैं जीएसी में स्थापित करने के लिए this का पालन करने और विकास के लिए उपलब्ध कराने का प्रयास कर रहा हूं। हालांकि, एकमात्र चीज जो हो रही है वह यह है कि डीएलएल को उत्पाद निर्देशिका में गिरा दिया जा रहा है। यह जीएसी में नहीं दिख रहा है, न ही रजिस्ट्री कुंजी जोड़ा जा रहा है। में इससे कैसे चला सकता हूँ?जीएसी में स्थापित करें और रजिस्ट्री में पंजीकरण करें

नीचे उत्पाद.wxs के प्रासंगिक भाग।

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Product Id="*" Name="Me.Common" Language="1033" Version="1.0.0.0" Manufacturer="Me" UpgradeCode="ea52947a-0980-435d-a8f5-280d3526cb90"> 
     <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> 
    <!-- The feature to install. --> 
     <Feature Id="ProductFeature" Title="Me.Common" Level="1"> 
      <ComponentGroupRef Id="ProductComponents" /> 
     </Feature> 
    </Product> 

    <Fragment> 
     <Directory Id="TARGETDIR" Name="SourceDir"> 
      <Directory Id="ProgramFilesFolder"> 
     <Directory Id="ProductDirectory" Name="Me.Common"> 
      <Directory Id="GAC" Name="GAC" /> 
     </Directory> 
      </Directory> 
     </Directory> 
    </Fragment> 

    <Fragment> 
     <ComponentGroup Id="ProductComponents"> 
     <Component Id="RunTime_Me.Common" Directory="GAC" Guid="E2B19C22-DC01-432D-85B0-0E4948F95A43"> 
     <!-- Add to GAC. --> 
     <File Id="RunTime_Me.Common" 
       Source="$(var.Me.Common.TargetDir)$(var.Me.Common.TargetFileName)" 
       Assembly=".net" 
       KeyPath="yes" /> 
     </Component> 
     <Component Id="DesignTime_Me.Common" Directory="ProductDirectory" Guid="C1BD8CD1-E834-49D5-B499-D9E313E70669"> 
     <!-- Add locally. --> 
     <File Id="DesignTime_Me.Common" 
       Source="$(var.Me.Common.TargetDir)$(var.Me.Common.TargetFileName)" 
       KeyPath="yes" /> 
     <!-- Add to registry so that Visual Studio can find it via Add Reference. --> 
     <Registry Id="Registry_DesignTime_Me.Common_AssemblyFolders" 
        Root="HKLM" 
        Key="SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\[ProductName]" 
        Value="[$DesignTime_Me.Common]" 
        Type="string" /> 
     </Component> 
     </ComponentGroup> 
    </Fragment> 
</Wix> 

यह पहले से ही GAC में स्थापित करने गया था बाहर कर देता है। मैं गलत जगह पर देख रहा था; .NET के पास अब 4.0 आइटम (सी: \ विंडोज \ माइक्रोसॉफ्ट.नेट \ असेंबली) के लिए दूसरा जीएसी है। वह रजिस्ट्री कुंजी छोड़ देता है। मैं एक चेतावनी हो रही थी कि Registry हटा दिया गया है, तो मैं नीचे के साथ कि घटक की जगह, लेकिन अभी भी काम नहीं कर रहा:

<Component Id="DesignTime_Me.Common" Directory="ProductDirectory" Guid="C1BD8CD1-E834-49D5-B499-D9E313E70669"> 
    <!-- Add locally. --> 
    <File Id="DesignTime_Me.Common" 
      Source="$(var.Me.Common.TargetDir)$(var.Me.Common.TargetFileName)" 
      KeyPath="yes" /> 
    <!-- Add to registry so that Visual Studio can find it via Add Reference. 
     These require .NET v4.0 minimum. --> 
    <RegistryKey Root="HKLM" 
       Key="SOFTWARE\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\[ProductName]"> 
     <RegistryValue Type="string" Value="[$DesignTime_Me.Common]" /> 
    </RegistryKey> 
    </Component> 
</ComponentGroup> 

उत्तर

4

यह सब काम कर रहा है; मैं सिर्फ गलत जगहों पर देख रहा था।

4.0 जीएसी C:\Windows\Microsoft.NET\assembly पर है। रजिस्ट्री कुंजी SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\[ProductName] में रखी जा रही है क्योंकि इंस्टॉलर 32-बिट है।

1

अपनी फ़ाइलें apeparing है कम से कम एक के बाद से, मुझे लगता है कि है कि आप ऊंचा नहीं चल रहे हैं । अपने पैकेज तत्व में InstallPrivileges = "elevated" जोड़ने का प्रयास करें।

<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" InstallPrivileges="elevated" /> 
+0

क्या यह सभी इंस्टॉलरों के लिए डिफ़ॉल्ट रूप से व्यवस्थापकीय अनुमतियां नहीं प्राप्त करता है? मुझे स्पष्ट InstallPrivileges के साथ परीक्षण करने दें। – zimdanen

+0

मेरा प्रश्न संपादित किया गया। बाहर निकलता है, जीएसी पहले से ही काम कर रहा था - 4.0 जीएसी के बजाय 2.0-3.5 जीएसी में देख रहा था। हालांकि, रजिस्ट्री कुंजी काम नहीं कर रही है, और 'InstallPrivileges' का उपयोग करके इसे ठीक नहीं किया जाता है। – zimdanen

+2

मेरा अपना उत्तर पोस्ट किया गया, लेकिन यह आपको पूरा होने के बाद से बक्षीस से सम्मानित किया गया और आप इसे वापस देखने के लिए वापस आ गए। – zimdanen

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