2009-05-04 6 views
0

J'ai un fichier WIX que j'ai besoin de modifier en utilisant MSBuild. Il commence comme ceci:XPaths et <? ?>

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
    xmlns:iis="http://schemas.microsoft.com/wix/IIsExtension"> 

    <?--... Removed Params ...--> 

    <?define ProductVersion = "1.0.1"?> 

    <?--... Removed Params ...--> 

    <Product Id='$(var.ProductCode)' 
    UpgradeCode='$(var.UpgradeCode)' 
    Name='$(var.AppName)' Language="1033" Version='$(var.ProductVersion)' 
    Manufacturer='$(var.Manufacturer)'> 
    <Package Id='$(var.PackageCode)' InstallerVersion="200" 
    Compressed="yes" /> 

    <?--... Rest of the WIX XML file ...--> 

Mon problème est que je ne sais pas ce que le XPath serait à la <?define ProductVersion = "1.0.1"?> serait. Existe-t-il un moyen de référencer cela via XPath afin que je puisse utiliser la tâche SDC SetValue MSBuild pour le changer? Ce n'est pas un nœud (je pense) donc je ne suis pas sûr de savoir comment le référencer.

Vaccano

+0

Je fini par utiliser la déclaration suivante: Vaccano

Répondre

3

Il ressemble /Wix/processing-instruction('define') peut travailler pour un XPath (ou non MSBuild reconnaît que, je ne sais pas). En branchant cela sur SketchPath, j'ai pu cliquer dessus et tester divers XPaths pour voir ce qui sélectionnerait cet élément.

0

// instruction de traitement ('définir')

0

<?define> est un nœud d'instruction de traitement, de sorte que vous devriez être en mesure de répondre à l'aide d'une expression XPath, comme

//processing-instruction('define') 
4

Une autre approche serait pour définir le paramètre via la ligne de commande à bougie:

candle -dProductVersion=1.0.1 
Questions connexes