Как систематически устанавливать атрибут ReadOnly для файлов, собранных с использованием тепла?

Я собираю каталог с использованием тепла, однако я не смог найти возможность установить атрибуты «Только для чтения» для всех файлов, собираемых с использованием тепла.

Кто-нибудь знает способ сделать это в тепле?


person RKM    schedule 12.01.2012    source источник


Ответы (1)


Примените XSLT-преобразование к фрагменту, созданному теплом, и добавьте ReadOnly="yes" к каждому File элементу. Этот XSLT делает следующее:

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

    <xsl:template match="wix:File">
        <xsl:copy>
            <xsl:apply-templates select="@*" />
            <xsl:attribute name="ReadOnly">
                <xsl:text>yes</xsl:text>
            </xsl:attribute>
            <xsl:apply-templates select="*" />
        </xsl:copy>
    </xsl:template>

    <xsl:template match="*">
        <xsl:copy>
            <xsl:apply-templates select="@*" />
            <xsl:apply-templates select="* | text()"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="@* | text()">
        <xsl:copy />
    </xsl:template>

    <xsl:template match="/">
        <xsl:apply-templates />
    </xsl:template>

</xsl:stylesheet>
person Alexey Ivanov    schedule 13.01.2012
comment
Для макета XML: как вы применяете это преобразование? - person harper; 13.01.2012
comment
@harper Вам придется использовать один из преобразователей, например Xalan или саксонский. Оба они являются Java-приложениями. Поскольку этот шаг будет процессом сборки, можно использовать Ant XSLT-задача. Есть другие инструменты. - person Alexey Ivanov; 13.01.2012
comment
Вот простое приложение C# Form для преобразования XML daniweb.com/ разработка программного обеспечения/csharp/threads/308973/ - person J Pollack; 12.06.2014
comment
Обновление: параметр -t файлаheat.exe можно использовать для применения файла преобразования. - person 51k; 19.04.2016