मैं विंडोज़ सेवा के लिए एक वाईएक्स इंस्टॉलर बनाने की कोशिश कर रहा हूं, और मैंने पढ़ा है कि मैंने अपनी सभी फाइलों के लिए कीपैथ को "नहीं" पर सेट करने के लिए तैयार किया है मेरी वाईएक्स स्क्रिप्ट में .exe का अपवाद।वाईएक्स इंस्टॉलर: गुणों को अद्यतन करने के लिए heat.exe के साथ xslt का उपयोग
"$(WIX)bin\heat.exe" dir $(SolutionDir)EmailGenerationService\bin\PROD
-cg EmailGenFiles -gg -scom -sreg -sfrag -srd -suid
-dr INSTALLLOCATION -var var.FileSource
-t $(Projectdir)KeyPathTransform.xslt
-out $(ProjectDir)DirectoryAndFileComponents.wxs
यह मेरी DirectoryAndFileComponents.wxs फ़ाइल में मुख्यपथ के साथ = "नहीं" सभी फ़ाइल तत्वों को अपडेट करने के लिए मेरा इरादा है: मैं वर्तमान में यहां Heat.exe उपयोग करते हुए मेरे निर्देशिका और फ़ाइल संरचना पैदा कर रहा हूँ मेरी आदेश है। गर्मी से उत्पादन का एक नमूना है:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
exclude-result-prefixes="msxsl"
xmlns:wix="http://schemas.microsoft.com/wix/2006/wix"
xmlns:my="my:my">
<xsl:output method="xml" indent="no"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match='/wix:Wix/wix:Fragment/wix:DirectoryRef/wix:Component/wix:File[@Id and not (@Id="EmailGenerationService.exe")]'>
<xsl:attribute name="KeyPath">
<xsl:value-of select="no"/>
</xsl:attribute>
</xsl:template>
</xsl:stylesheet>
मैं अन्य के आधार पर इस बात का काफी कुछ रूपों की कोशिश की है:
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="INSTALLLOCATION">
<Component Id="Dollar.Common.dll" Guid="{2BCD0767-2383-47CF-B1BF-325FA4A3264F}">
<File Id="Dollar.Common.dll" KeyPath="yes" Source="$(var.FileSource)\Dollar.Common.dll" />
</Component>
<Component Id="Dollar.Common.Exceptions.dll" Guid="{B7238091-76D1-42F5-A3B4-A539DFF3BD92}">
<File Id="Dollar.Common.Exceptions.dll" KeyPath="yes" Source="$(var.FileSource)\Dollar.Common.Exceptions.dll" />
</Component>
<Component Id="Dollar.Common.Exceptions.pdb" Guid="{43711979-747D-49C9-BAE4-ECD44FAF5E67}">
<File Id="Dollar.Common.Exceptions.pdb" KeyPath="yes" Source="$(var.FileSource)\Dollar.Common.Exceptions.pdb" />
</Component>
<Component Id="Dollar.Common.Logging.dll" Guid="{59F9ABF3-5F68-410C-BC96-0556282F1E04}">
<File Id="Dollar.Common.Logging.dll" KeyPath="yes" Source="$(var.FileSource)\Dollar.Common.Logging.dll" />
</Component>
यहाँ XSLT मैं परिवर्तन को करने के लिए गर्म करने के लिए गुजर रहा है इस साइट पर पोस्ट और अन्यथा, लेकिन अभी तक keyPath = "no" रखने के लिए heat.exe द्वारा बनाई गई फ़ाइल प्राप्त करने में असमर्थ रहा है।
क्या मुझे कुछ याद आ रही है?
- एक्सएमएल में: _
http://schemas.microsoft.com/wix/2006/wi
- XSLT में:
http://schemas.microsoft.com/wix/2006/wix
मुझे पता है के रूप में, WiX के लिए सही नाम स्थान http://schemas.microsoft.com/wix/2006/wi
है
प्रतिक्रिया के लिए धन्यवाद, लेकिन यह भी काम नहीं कर रहा है। गर्मी त्रुटियों के साथ ठीक है, लेकिन परिणामस्वरूप फ़ाइल में अभी भी सभी नोड्स पर कीपैथ = "हां" है। –
@ मार्कजोन, मैंने अपना जवाब अपडेट कर लिया है। –
सही, आपको बहुत धन्यवाद –