2017-08-21 4 views
1

Je souhaite créer un fichier d'installation avec WiX Toolset. Pour ce faire, je génère une solution en utilisant l'outil Chaleur dans un répertoire. Le problème se pose lorsque je veux modifier un fichier web.config à partir de cette solution.Modification d'un fichier avec l'outil wix

Je reçois toujours cette erreur lors de la compilation.

code Gravité Description Suppression ligne du fichier de projet État Erreur ICE30: Le fichier cible 'jn9q_isq.con | web.config' est installé dans [TARGETDIR] \ inetpub \ vTimeEngineAPI \ 'par deux composants différents sur un LFN système: 'InstallWebConfigTe' et 'cmpA228938071CAE6FF139C38D6724F819B'. Cela interrompt le comptage des références des composants. vTimeMainSetup C: \ TSVtime \ NewTimeAPISetup \ Features \ vTimeEngineFeature.wxs 40

Ceci est mon code pour obtenir et éditer le fichier:

<ComponentGroupRef Id="File.Generated"/> 
    <Component Id="InstallWebConfigTe" Guid="*"> 
    <File Id="WebConfigTe" Name="web.config" Source="SourceDir\Web.config" Vital="yes" KeyPath="yes" /> 
    <util:XmlFile Id="WebConfigSetDbTypeTe" Action="setValue" Permanent="yes" File="[#WebConfigTe]" 
        ElementPath="/configuration/Configuration/Database/add[\[]@key='ServerKind'[\]]" Name="value" Value="[DATABASE_TYPE]" /> 
    </Component> 

Répondre

1

Peut-être que vous pouvez essayer la suggestion trouvé dans cette réponse (juste le premier que j'ai trouvé qui a fait une sorte de sens): WiX ICE30 error but directory is correct.

Votre extrait de source WiX est trop petit pour indiquer si cela peut être le problème ou non. Ouvrez simplement votre fichier MSI compilé au Orca pour vérifier si ce problème existe dans la table de répertoire.

Avez-vous installé plusieurs versions de web.config par hasard? Si c'est le cas, essayez peut-être de lire cette réponse (lisez toutes les réponses): How to manage files with same name in Wix?

0

Je pense que vous dites que la chaleur a récolté le même fichier que vous créez manuellement un composant pour.

Si vous voulez modifier la création générée par Heat, vous pouvez lui passer un XSLT (-t argument) pour ajouter l'élément util: XmlFile à l'élément Component approprié.

Ou, vous pourriez avoir le XSLT enlever le composant et garder le créé manuellement. (Cela peut être plus difficile si la création générée inclut un ComponentRef pour le composant.)