मेरे पास विजुअल स्टूडियो 2013 में निर्माण करने के लिए एक बहुत बड़ी इंस्टॉलर किट है (इसमें मुख्य प्रोजेक्ट से संबंधित कुछ टूल, एक विंडोज़ सेवा और एक गैर-तुच्छ निर्देशिका संरचना वाला वेब अनुप्रयोग शामिल है)। मैं अभी भी सीख रहा हूं कि वाईएक्स का उपयोग कैसे करें, और अभी भी वाईएक्स प्रोजेक्ट का क्राफ्टिंग, परीक्षण और परिष्करण कर रहा हूं। ": \ Program Files (x86) \ WiX टूलसेट v3.9 \ बिन \ heat.exe सी" dir "$ SolutionDir (वर्तमान में, मैं फसल कार्यों के निर्माण की घटनाओं के रूप में सेट अप, प्रपत्र
के एक आदेश का उपयोग किया है) \ MyProjectDir \ bin \ $ (ConfigurationName) "-cg MyComponentRef -ag -dr MYINSTALLDIR -srd -wixvar -var var.MySourceFiles -sreg -out" $ (SolutionDir) \ परिनियोजन \ मेरा इंस्टॉलर प्रोजेक्ट \ ComponentList.wxs "-t "$ (SolutionDir) \ परिनियोजन \ मेरा इंस्टॉलर प्रोजेक्ट \ FileFilter.xslt"
यह आदेश बस प्रोजेक्ट के बिन \ डीबग (या बिन \ रिलीज़) फ़ोल्डर में सभी फ़ाइलों को पकड़ लेता है, फिर इसे एक XML स्टाइलशीट ट्रांसफॉर्म का उपयोग करके फ़िल्टर करता है। इस तरह इकट्ठा करने के लिए बहुत सारे उपज हैं, इसलिए सभी स्रोत फ़ाइल चर ("var.MySourceFiles" कमांड में तर्क) को बनाए रखना कठिन और त्रुटि प्रवण हो रहा था। प्रारंभ में, मैंने प्रोजेक्ट के प्रीप्रोसेसर वैरिएबल में घोषणाएं जोड़ दी थीं, लेकिन मुझे कुछ ऐसा चाहिए जो थोड़ा और "आत्मनिर्भर" था। उपयोगी टिप्स मैं WiX tricks and tips में पाया का उपयोग करना, मैं एक नई सामग्री
साथ, फ़ाइल में शामिल हैं "PreprocessorVars.wxi" घोषित कर दिया और xslt गर्मी द्वारा उत्पन्न उत्पादन में शामिल हो गया।
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:wix="http://schemas.microsoft.com/wix/2006/wi">
<?include
$(sys.CURRENTDIR)\PreprocessorVars.wxi
?>
<Fragment>
<DirectoryRef Id="MYINSTALLDIR" />
</Fragment>
<Fragment>
<ComponentGroup Id="MyComponentRef">
<Component Id="xyz" Directory="MYINSTALLDIR" Guid="*">
<File Id="abc" KeyPath="yes" Source="$(var.MySourceFiles)\MyProjectExecutable.exe" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
जो Wix किसी भी त्रुटि के बिना संसाधित करता है: टुकड़ा
<xsl:processing-instruction name="include">
$(sys.CURRENTDIR)\PreprocessorVars.wxi
</xsl:processing-instruction>
xslt अब उत्पादन है कि कुछ इस तरह दिखता का उत्पादन के साथ exe।
मुझे यह जवाब मिल गया: http://stackoverflow.com/a/4280454/11421 –