2016-10-24 3 views
0

Voici mon exigence: si le fichier web.config existe dans D: \ default \ website \ web.config je dois copier certains fichiers à D: \ default \ site web else sinon copier les mêmes fichiers dans C: \ inetpub \ wwwroot emplacement.Comment utiliser if..else condition dans le jeu d'outils Wix?

Comment écrire cette condition dans le fichier .wxs?

Répondre

1

Vous devez imbriquer un élément FileSearch sous un élément DirectorySearch afin de détecter la présence d'un fichier.

<Property Id="WEB_CONFIG_UNDER_D"> 
    <DirectorySearch Path="D:\default\website" 
     Depth="0" 
     AssignToProperty="no" 
     Id="DefaultWebsiteSearch"> 
     <FileSearch Name="web.config" 
      Id="webconfigSearch" /> 
    </DirectorySearch> 
</Property> 

Vous pouvez maintenant vérifier si la propriété WEB_CONFIG_UNDER_D existe, puis utiliser différents TargetDirectories basés sur cette propriété.

Je ne suis pas sûr de ce que vous essayez d'atteindre. Si vous souhaitez créer correctement un nouveau site Web, vous devrez suivre une route beaucoup plus compliquée, comme décrit dans la question SO wix installer/Create web-site and assign the new or exisiting web app pool.

+0

Comment vérifier WEB_CONFIG_UNDER_D existe ou non en utilisant .. meshsf

+0

je un certain ensemble de fichiers que je veux copier à D: \ lecteur si le fichier web.config existe, sinon je dois copier dans C: \ – meshsf

+0

La construction [] (http://wixtoolset.org/documentation/manual/v3/overview/preprocessor.html) est utilisée en combinaison avec les variables du préprocesseur. Cela signifie que cette construction n'a de sens que si vous voulez vérifier les conditions sur la machine de développement. La propriété décrite ci-dessus peut être simplement utilisée comme condition de caractéristique. Créez deux fonctionnalités, une qui s'installe à D :, l'autre à C: – BdN3504