Игнорирование каталогов .svn с помощью Wix Heat? - PullRequest
9 голосов
/ 25 июля 2011

Я использую инструмент Heat для создания разметки Wix, чтобы включить в мои настройки большое количество файлов и папок.Это работало нормально, но я только что понял, что, поскольку я добавил исходную папку в свой репозиторий Subversion, Heat хочет включить и папки .svn.которые соответствуют заданным критериям?

В настоящее время я использую Wix 3.5.

Ответы [ 4 ]

11 голосов
/ 25 июля 2011

К сожалению, сегодня вам придется использовать XSL-преобразование, чтобы отфильтровать «шум». Это особенность запроса на тепло.

8 голосов
/ 06 января 2012

Вот что у меня работает:

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:wix="http://schemas.microsoft.com/wix/2006/wi">

    <!-- Copy all attributes and elements to the output. -->
    <xsl:template match="@*|*">
        <xsl:copy>
            <xsl:apply-templates select="@*" />
            <xsl:apply-templates select="*" />
        </xsl:copy>
    </xsl:template>

    <xsl:output method="xml" indent="yes" />

    <!-- Create searches for the directories to remove. -->
    <xsl:key name="svn-search" match="wix:Directory[@Name = '.svn']" use="@Id" />
    <xsl:key name="tmp-search" match="wix:Directory[@Name = 'tmp']" use="@Id" />
    <xsl:key name="prop-base-search" match="wix:Directory[@Name = 'prop-base']" use="@Id" />
    <xsl:key name="text-base-search" match="wix:Directory[@Name = 'text-base']" use="@Id" />
    <xsl:key name="props-search" match="wix:Directory[@Name = 'props']" use="@Id" />

    <!-- Remove directories. -->
    <xsl:template match="wix:Directory[@Name='.svn']" />
    <xsl:template match="wix:Directory[@Name='props']" />
    <xsl:template match="wix:Directory[@Name='tmp']" />
    <xsl:template match="wix:Directory[@Name='prop-base']" />
    <xsl:template match="wix:Directory[@Name='text-base']" />

    <!-- Remove Components referencing those directories. -->
    <xsl:template match="wix:Component[key('svn-search', @Directory)]" />
    <xsl:template match="wix:Component[key('props-search', @Directory)]" />
    <xsl:template match="wix:Component[key('tmp-search', @Directory)]" />
    <xsl:template match="wix:Component[key('prop-base-search', @Directory)]" />
    <xsl:template match="wix:Component[key('text-base-search', @Directory)]" />

    <!-- Remove DirectoryRefs (and their parent Fragments) referencing those directories. -->
    <xsl:template match="wix:Fragment[wix:DirectoryRef[key('svn-search', @Id)]]" />
    <xsl:template match="wix:Fragment[wix:DirectoryRef[key('props-search', @Id)]]" />
    <xsl:template match="wix:Fragment[wix:DirectoryRef[key('tmp-search', @Id)]]" />
    <xsl:template match="wix:Fragment[wix:DirectoryRef[key('prop-base-search', @Id)]]" />
    <xsl:template match="wix:Fragment[wix:DirectoryRef[key('text-base-search', @Id)]]" />
</xsl:stylesheet>
1 голос
/ 07 января 2012

Subversion 1.7 была выпущена, и централизовало хранилище метаданных как одну папку .svn для каждой рабочей копии.Поэтому я подозреваю, что ваша проблема исчезнет, ​​если вы просто обновите свой SVN-клиент.

1 голос
/ 26 июля 2011

Возможно, используйте копию файла с фильтром, а затем соберите эти файлы, как, например, описано в
Уловки и советы WiX , пункт 7.

...