2013-11-20 7 views
7

के साथ .NET पुनर्वितरण योग्य स्थापित करना मैं विक्स/बर्न के लिए नया हूं और कुछ बुनियादी सिद्धांतों को समझने की कोशिश कर रहा हूं।Wix बूटस्ट्रैपर (बर्न)

<Chain> 
    <PackageGroupRef Id="NetFx40ClientRedist"/> 
    <MsiPackage Id="MyApp" SourceFile="$(var.WixInstaller.TargetPath)" DisplayInternalUI="yes" /> 
</Chain> 

रूप How To: Install the .NET Framework Using Burn द्वारा सिफारिश की: मैं एक साधारण bootstrapper कि आवश्यक .NET 4.0 फ़्रेमवर्क स्थापित करता है निम्नलिखित श्रृंखला का उपयोग कर सकते है। एप्लिकेशन का उपयोग सर्वर पर किसी भी वेब एक्सेस के साथ नहीं किया जा सकता है, इसलिए यह महत्वपूर्ण है कि स्थानीय पुनर्वितरण योग्य सेनेट स्थापित किया जाए। बूटस्ट्रैपर बहुत अच्छी तरह से काम करता प्रतीत होता है और ढांचे के रूप में ढांचे को स्थापित करता है। Setup.exe फ़ाइल, हालांकि, अनुप्रयोग के रूप में मोटे तौर पर एक ही आकार है (< 5 एमबी) तो मुझे यह मानना ​​है कि ढांचे को अभी भी स्थापना के दौरान डाउनलोड किया जा रहा है।

प्रश्न

  1. क्या है, तो, WixNetfxExtension पैकेज में "NetFx40ClientWeb" और "NetFx40ClientRedist" के बीच अंतर है?

  2. मैं बूस्ट्रैपर में स्थानीय पुनर्वितरण योग्य कैसे शामिल करूं ताकि कोई डाउनलोड की आवश्यकता न हो?

संपादित करें:

मेरा मानना ​​है कि मैं इस सवाल का जवाब here पाया:

WiXNetFxExtension किसी उप-निर्देशिका "Redist" कहा जाता है जहां अपने बंडल पैकेज के लिए है की जाँच करेगा तो डाउनलोड अगर यह पर पथ नहीं है तो पथ "Redist \ dotNetFx40_Client_setup.exe"। यह मानक व्यवहार जला है।

+1

रेडिस्ट फ़ोल्डर को इंस्टॉलर की स्थानीय मशीन पर कॉपी करने के लिए आप कैसे जल गए? –

+0

मुझे NetFx40Redist के स्रोत कोड में "ExePackage" परिभाषा में "SourceFile" विशेषता जोड़कर काम करने के लिए मिला, लेकिन मैं अभी भी जानना चाहूंगा कि स्रोत को हैक किए बिना इसे कैसे किया जाए। –

उत्तर

1

दोनों के बीच अंतर कर रहे हैं:
1. clientWeb - मतलब है कि आप वेब और .net 4.0 डाउनलोड किया जाएगा करने के लिए और मशीन पर स्थापित करने के बाद एक कनेक्शन है करने के लिए है।

2. क्लाइंट रेडिस्ट - का मतलब पुनर्वितरण योग्य है - जिसका मतलब है कि एक पूर्ण पैकेज जिसे इंटरनेट से किसी भी कनेक्शन की आवश्यकता नहीं है, आप इसे किसी भी कंप्यूटर पर इंस्टॉल कर सकते हैं।


अगर आप पुनर्वितरण पैकेज का उपयोग आप ठीक होना चाहिए - यहाँ नेट 4.5 के लिए उदाहरण है, यह है पुनर्वितरण पैकेज नेट 4.0 केवल diff के लिए एक ही है।

<?xml version="1.0" encoding="utf-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"> 
    <Bundle Name="Prog" Version="1.0.0.0" Manufacturer="my Corporation" UpgradeCode="*"> 
    <Chain> 
     <!-- TODO: Define the list of chained packages. --> 
     <PackageGroupRef Id="Netfx45FullPackage" /> 
    </Chain> 
    </Bundle> 
    <Fragment> 
    <PackageGroup Id="Netfx45FullPackage"> 
     <ExePackage Id="Netfx45Xxx" Cache="no" Compressed="no" PerMachine="yes" Permanent="yes" Vital="no" InstallCommand="/q" SourceFile="..\SetupProject\dotnetfx45_full_x86_x64.exe" DetectCondition="(Netfx4FullVersion=&quot;4.5.50709&quot;) AND (NOT VersionNT64 OR (Netfx4x64FullVersion=&quot;4.5.50709&quot;))" InstallCondition="(VersionNT &gt;= v6.0 OR VersionNT64 &gt;= v6.0) AND (NOT (Netfx4FullVersion=&quot;4.5.50709&quot; OR Netfx4x64FullVersion=&quot;4.5.50709&quot;))" /> 

     <MsiPackage Id="MyProg" Cache="no" Compressed="no" DisplayInternalUI="yes" Vital="yes" SourceFile="$(var.installerPath)\MyProgCore.msi" /> 
    </PackageGroup> 
    </Fragment> 
</Wix> 
+0

यदि नेट के उच्च संस्करण को स्थापित किया गया है तो हम स्थापना का पता लगा सकते हैं और छोड़ सकते हैं? – jero2rome

+0

DetectCondition = "(Netfx4FullVersion = " 4.5.50709 ") और (नहीं VersionNT64 या (Netfx4x64FullVersion = " 4.5.50709 "))" – Gilad

+0

हाँ मैं इस हालत उपयोग कर रहा हूँ। लेकिन, सिस्टम में जहां 4.6 स्थापित है, बर्नर इंस्टॉलर शुरू करने की कोशिश करता है। तब मुझे नेट इंस्टॉलर यूआई से मैन्युअल रूप से नेट इंस्टॉलर से बाहर निकलना होगा। – jero2rome

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