2011-02-09 10 views
8

मैं वीएस 2010 में वाईएक्स 3.5 का उपयोग कर रहा हूं, और मैंने सभी परियोजना असेंबली को सेटअप प्रोजेक्ट (.wixproj) में संदर्भ के रूप में जोड़ा है, और हार्वेस्ट प्रॉपर्टी को सही पर सेट किया है ताकि बाइनरी, सामग्री और उपग्रह .msi फ़ाइल में शामिल किए गए हों।वाईएक्स - सेटअप आउटपुट में फसल गैर परियोजना असेंबली

हालांकि, मैं किसी भी तृतीय पक्ष असेंबली (.dlls) को .msi आउटपुट में जोड़ने के बारे में कैसे जाऊं? क्या मुझे प्रत्येक को product.wxs फ़ाइल में स्पष्ट रूप से जोड़ने की ज़रूरत है, या क्या कोई अच्छा तरीका है? आदर्श रूप से, मैं उन्हें सेटअप प्रोजेक्ट में फ़ाइल संदर्भों के रूप में जोड़ना चाहता हूं, लेकिन यह एक विकल्प प्रतीत नहीं होता है?

उत्तर

7

हाँ आप उन्हें कुछ wxs फ़ाइल या आप एक पूर्व निर्माण कदम आप के लिए इन फ़ाइल फसल गर्मी का उपयोग करता है का उपयोग कर सकते करने के लिए मैन्युअल रूप से जोड़ने के लिए (इन सभी फ़ाइल संभालने एक अलग निर्देशिका में रहते हैं) की आवश्यकता होगी।

हीट Wix का हिस्सा है और dir स्विच का उपयोग एक पूरी निर्देशिका फसल कर सकते हैं। कमांडलाइन तर्कों के आधार पर, यह एक अलग wxs फ़ाइल उत्पन्न करेगा जिसमें एकल घटक समूह होगा। Product.wxs से बस इस घटक समूह का संदर्भ लें।

कैसे मैं वर्तमान में गर्मी का उपयोग अपने रिहाई निर्देशिका फसल पर एक उदाहरण के लिए: "../../bin/release"

गर्मी dir -gg -cg CG.ApplicationBinaries डॉ INSTALLDIR -scom -sfrag -sreg -srd -var var.BuildOutputDir -ओ ApplicationBinaries.wxs

इस फ़ाइल ApplicationBinaries.wxs का उत्पादन करेगा:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Fragment> 
     <DirectoryRef Id="INSTALLDIR"> 
      <Component Id="cmp53F90D1335DD67504EC2B9E1E8620DD3" Guid="{CA2DF1B5-7B20-4596-84A4-925B4F9BA6EC}"> 
       <File Id="filC65F9CB88694FCA79FCB3CADB9481921" KeyPath="yes" Source="$(var.BuildOutputDir)\AsyncTCPsocket.dll" /> 
      </Component> 
      .... 
     </DirectoryRef> 
    </Fragment> 
    <Fragment> 
     <ComponentGroup Id="CG.ApplicationBinaries"> 
      <ComponentRef Id="cmp53F90D1335DD67504EC2B9E1E8620DD3" /> 
      ... 
     </ComponentGroup> 
    </Fragment> 
</Wix> 
+1

धन्यवाद, मुझे लगता है कि मैं उन्हें स्पष्ट रूप से परिभाषित कर दूंगा – devdigital

+0

क्या आपको घटक समूह को जेनरेट की गई Wxs फ़ाइल को संदर्भित करने में सक्षम होने के लिए किसी संपत्ति को परिभाषित करने की आवश्यकता नहीं है? – KennO

+0

क्या आप किसी भी तरह से product.wxs के भीतर $ (var.YOURPROJECT.TargetDir) जैसे कुछ (var.BuildOutputDir) सेट करते हैं? यदि ऐसा है तो आप इसे कैसे पूरा करते हैं? – jpierson

4

वर्तमान में a bug in Heat जो WiX संस्थापक परियोजना संदर्भित विधानसभाओं का मतलब है कि द्वारा इस्तेमाल किया जाता है एक परियोजना के ऑटोमा नहीं हैं बारीकी से कटाई। इसे संबोधित करने से पहले आपको संस्करण 4 के लिए शायद प्रतीक्षा करनी होगी।

इस बीच, @ एल्मर डी कोनिंग का जवाब शायद अब के लिए सबसे अच्छा होगा।

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