2011-01-18 16 views
8

पृष्ठभूमि पर खाली हो जाता है पृष्ठभूमि: मेरे पास एक विक्स इंस्टॉलर है जहां एक मौजूदा आईआईएस वेबसाइट में वर्चुअल निर्देशिका बनाई जाती है। आभासी निर्देशिका बनाई गई है (यह इंस्टॉल करने से पहले मौजूद नहीं है) लेकिन आईआईएस वेबसाइट पहले ही बनाई जानी चाहिए (उपयोगकर्ता सिर्फ सूची बॉक्स में स्थापित करने के लिए एक वेबसाइट चुनता है)।आईआईएस वेबसाइट भौतिक पथ wix अनइंस्टॉल

समस्या: स्थापना रद्द करें पर, आईआईएस वेबसाइट है कि करने के लिए स्थापित किया गया के भौतिक पथ खाली हो जाता है, उस विशेषता के लिए कोई मूल्य नहीं। नीचे मेरी मुख्य Wix फ़ाइल का एक नीचे संस्करण है। मुझे यकीन नहीं है कि अनइंस्टॉल आईआईएस वेबसाइट को क्यों प्रभावित कर रहा है, लेकिन किसी भी विचार की सराहना की जाती है।

नोट्स: मैं Wix 3.5 पर हूँ और Windows Server 2008 R2, IIS 7.

<Product> 

    <Property Id='WEBSITE_DESCRIPTION'> 
     <RegistrySearch Id='RememberPropertyWEBSITE_DESCRIPTION' Root='HKCU' 
     Key='SOFTWARE\Company\Product' Name='InstalledWebsiteDescription' 
     Type='raw' /> 
    </Property> 

    <Property Id='WEBSITE_PORT'> 
     <RegistrySearch Id='RememberPropertyWEBSITE_PORT' Root='HKCU' 
     Key='SOFTWARE\Company\Product' Name='InstalledWebsitePort' 
     Type='raw' /> 
    </Property> 


    <Component Id='PropertiesToSave' Directory='ApplicationFolder'> 
     <RegistryValue Root='HKCU' Key='SOFTWARE\Company\Product' 
     Name='InstalledWebsiteDescription' Value='[WEBSITE_DESCRIPTION]' 
     Type='string' /> 
     <RegistryValue Root='HKCU' Key='SOFTWARE\Company\Product' 
     Name='InstalledWebsitePort' Value='[WEBSITE_PORT]' 
     Type='string' /> 

     <RemoveFolder Id='CleanupApplicationFolder' On='uninstall' /> 
    </Component> 


    <Directory Id='TARGETDIR' Name='SourceDir'> 
     <Component Id='TestWebVirtualDirComponent' Guid='12345678-6304-410E-A808-E3585379EADB'> 
     <CreateFolder /> 
     <iis:WebVirtualDir Id='TestWebVirtualDir' Alias='[WEBSITE_VIRTUALDIR]' Directory='TARGETDIR' WebSite='MyWebsite'> 
      <iis:WebApplication Id='TestWebApplication' Name='Test' /> 
     </iis:WebVirtualDir> 
     </Component> 
    </Directory> 

    <iis:WebSite Id="MyWebsite" Description="[WEBSITE_DESCRIPTION]" SiteId="*"> 
     <iis:WebAddress Id="AllUnassigned" Port="[WEBSITE_PORT]" /> 
    </iis:WebSite> 

    <Feature> 
     <ComponentRef Id='TestWebVirtualDirComponent'/> 
     <ComponentRef Id='PropertiesToSave'/> 
    </Feature> 
</Product> 
+0

मैं का उपयोग किया है WIX (3.0 मेरे मामले में), और मैं कुछ आश्चर्य और खामियों पाया। कुछ मामलों में मुझे उम्मीद के अनुसार काम करने के लिए कस्टम कार्यों का सहारा लेना पड़ा। – Cheeso

उत्तर

5

WiX IIsExtension पहचानता विवरण विशेषता और बच्चे WebAddress तत्व के पोर्ट विशेषता के आधार पर WebSite। इसलिए, जब आप अपना एप्लिकेशन इंस्टॉल करते हैं, तो आप किसी भी तरह से WEBSITE_DESCRIPTION और WEBSITE_PORT सेट करते हैं। हालांकि, जब आप अनइंस्टॉल करते हैं, तो उल्लिखित गुण सेट नहीं होते हैं, और आपको वर्णित व्यवहार मिलता है।

इस का हल सिस्टम रजिस्ट्री करने के लिए आवश्यक गुण मान बचाने के लिए और RegistrySearch तत्व का उपयोग मान पढ़ सकते हैं और उचित गुणों को सेट करने के लिए है। इसे "याद रखें संपत्ति" पैटर्न कहा जाता है और रोब मेन्शिंग here द्वारा पूरी तरह से समझाया जाता है।

+0

हाय यान। मैं वास्तव में ऐसा कर रहा हूं, मैंने यह दिखाने के लिए उपरोक्त कोड नमूना संशोधित किया है कि मैं क्या कर रहा हूं। एक "मरम्मत" अपेक्षित काम करता है, क्या मुझे कुछ "अनइंस्टॉल करने" पर करना है? –

+1

आपके नमूने के अनुसार मुझे लगता है कि आप अनइंस्टॉल करने पर वर्चुअल निर्देशिका को हटाने की अपेक्षा करेंगे। यदि यह सच है, तो आपको WEBSITE_VIRTUALDIR संपत्ति को "याद" भी करना चाहिए। इसके अलावा, यह संदिग्ध नहीं दिखता है और काम करना चाहिए। क्या आपको अनइंस्टॉल करने पर किसी विशिष्ट त्रुटि का सामना करना पड़ता है? या यह बस वर्चुअल डीआईआर छोड़ देता है? –

+0

हाय यान, हाँ, यह समस्या थी। वर्चुअल निर्देशिका को सहेजने से ब्रह्मांड में सब ठीक हो गया। –

0

आप [VIRTUALDIR] और [STSWEBALIAS] गुण
के साथ-साथ [WEBSITE_DESCRIPTION] और [WEBSITE_PORT] भी रजिस्ट्री में दर्ज करने के लिए किया है।
यहाँ पूर्ण समाधान है कि मुझे और मेरी टीम के लिए काम किया है: भी एक आईआईएस से संबंधित स्थापना के लिए

<Property Id='WEBSITE_DESCRIPTION' Value='Default Web Site'> 
    <RegistrySearch Id='RememberPropertyWEBSITE_DESCRIPTION' Root='HKLM' 
    Key='SOFTWARE\Company\Product' Name='InstalledWebsiteDescription' 
    Type='raw' /> 
</Property> 

<Property Id='WEBSITE_PORT' Value='90'> 
    <RegistrySearch Id='RememberPropertyWEBSITE_PORT' Root='HKLM' 
    Key='SOFTWARE\Company\Product' Name='InstalledWebsitePort' 
    Type='raw' /> 
</Property> 

<Property Id='VIRTUALDIR'> 
    <RegistrySearch Id='RememberPropertyWEBSITE_VIRT' Root='HKLM' 
    Key='SOFTWARE\Company\Product' Name='InstalledWebsiteVirtDir' 
    Type='raw' /> 
</Property> 

<Property Id='STSWEBALIAS'> 
    <RegistrySearch Id='RememberPropertyWEBSITE_STS' Root='HKLM' 
    Key='SOFTWARE\Company\Product' Name='InstalledWebsiteSts' 
    Type='raw' /> 
</Property> 


<DirectoryRef Id="TARGETDIR"> 
    <Component Id='PropertiesToSave' Guid='{384F2559-E7CF-40D2-A2D3-347DBFD15711}'> 
    <RegistryValue Root='HKLM' Key='SOFTWARE\Company\Product' 
     Name='InstalledWebsiteDescription' Value='[WEBSITE_DESCRIPTION]' 
     Type='string' /> 
    <RegistryValue Root='HKLM' Key='SOFTWARE\Company\Product' 
     Name='InstalledWebsitePort' Value='[WEBSITE_PORT]' 
     Type='string' /> 
    <RegistryValue Root='HKLM' Key='SOFTWARE\Company\Product' 
     Name='InstalledWebsiteVirtDir' Value='[VIRTUALDIR]' 
     Type='string' /> 
    <RegistryValue Root='HKLM' Key='SOFTWARE\Company\Product' 
     Name='InstalledWebsiteSts' Value='[STSWEBALIAS]' 
     Type='string' /> 
    </Component> 
</DirectoryRef> 

<Feature Id="Saves"> 
    <ComponentRef Id='PropertiesToSave'/> 
</Feature> 
संबंधित मुद्दे