ich eine Verzeichnisstruktur wie dies in WIX habeWie legen Sie einen Verzeichnispfad in WIX mit CustomAction fest?
<Directory Id="TARGETDIR" Name="SourceDir" >
<Directory Id="XXXFOLDER" Name="XXX">
<Directory Id="YYYFOLDER" Name="YYY">
<Directory Id="MAINFOLDER" Name="MAIN">
Nun ist dieser Hauptordner Verzeichnis Behebt nach D: \ XXX \ YYY \ MAIN \
ich einen Weg für den Hauptordner von einem Dienst zu bekommen, die beschließt E: \ XXX \ YYY \ MAIN ich auch eine Custom in einer cs-Datei Below zugewiesen haben, ist der Code
[Custom]
public static ActionResult GetNewDataPath(Session session)
{
sNewDataDir = xxxservice.GetPath();
if (!String.IsNullOrEmpty(sNewDataDir.ToString()))
{
sNewDataDir+= "\\MAIN\\";
}
session["MAINFOLDER"] = sNewDataDir;
return ActionResult.Success;
}
Meine Benutzerdefinierte Aktionen sind wie folgt:
<Custom Action="GETDATAPATH" Before="CostFinalize" />
Der sNewDataDir enthält dieser Wert = "E: \ XXX \ YYY \ MAIN"
<CustomAction Id="GETDATAPATH" BinaryKey="InstallerCA"
DllEntry="GetNewDataPath" Execute="immediate"/>
Dies ist die Reihenfolge installieren ist und ich Sitzung zuweisen ["HAUPTORDNER"]. Es wird zugewiesen. Es wird jedoch nicht auf der WIX-Seite wiedergegeben, da meine Dateien immer noch nach D: \ XXX \ YYY \ Main kopiert werden, obwohl sie E: \ XXX \ YYY \ Main zugewiesen wurden. Wie ändern wir den Verzeichnispfad der Sitzung ["MAINFOLDER"] mit CustomAction?
@ B. Murri - Ich habe versucht, CostInitialize in der Before-Attribut, aber es funktioniert nicht. Ich habe den obigen Code bearbeitet, um CustomAction hinzuzufügen. Können Sie nur überprüfen, ob das in Ordnung ist? –
Sieht korrekt aus. Was zeigt Ihr Logging, dass diese Aktion aufgerufen wird? –
Endlich behoben das Problem. Ich änderte nur den Pfad des übergeordneten Ordners, der der Pfad MAINFOLDER ist, und nicht die Ordner in MAINFOLDER, aufgrund dessen der Pfad nicht aktualisiert wurde. Jetzt habe ich manuell alle Pfade des Ordners durch eine benutzerdefinierte Aktion aktualisiert und es funktioniert gut. Vielen Dank –