2016-10-24 4 views
0

Hier ist meine Anforderung: Wenn die Datei web.config in D: \ default \ website \ web.config existiert, muss ich einige Dateien in den Ordner D: \ default \ website kopieren. Ansonsten kopieren Sie die gleichen Dateien nach C: \ inetpub \ wwwroot Lage.Wie zu verwenden, wenn ... Bedingung in Wix Toolset?

Wie schreibe ich diese Bedingung in .wxs Datei?

Antwort

1

Sie müssen ein FileSearch Element unter einem DirectorySearch Element verschachteln, um das Vorhandensein einer Datei zu erkennen.

<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> 

Sie können nun überprüfen, ob die Eigenschaft WEB_CONFIG_UNDER_D vorhanden ist, und verwenden Sie dann unterschiedliche TargetDirectories basierend auf dieser Eigenschaft.

Ich bin mir nicht sicher, was Sie erreichen möchten. Wenn Sie eine neue Website richtig erstellen möchten, müssen Sie eine viel kompliziertere Route wählen, wie in der SO-Frage wix installer/Create web-site and assign the new or exisiting web app pool beschrieben.

+0

Wie WEB_CONFIG_UNDER_D existiert oder nicht mit überprüfen .. meshsf

+0

Ich habe einige Reihe von Dateien, die ich D kopieren möchten: \ fahren, wenn web.config Datei vorhanden ist, wenn ich nicht auf C kopieren: \ – meshsf

+0

Das Konstrukt [] (http://wixtoolset.org/documentation/manual/v3/overview/preprocessor.html) wird in Kombination mit Präprozessorvariablen verwendet. Dies bedeutet, dass dieses Konstrukt nur dann sinnvoll ist, wenn Sie Bedingungen auf dem Entwicklungscomputer überprüfen möchten. Die oben beschriebene Eigenschaft kann einfach als eine Merkmalsbedingung verwendet werden. Erstellen Sie zwei Features, eines, das nach D installiert wird, das andere nach C: – BdN3504

Verwandte Themen