2009-04-18 3 views
2

Ich möchte in WiX 3 (vorzugsweise über eine Bedingung) erkennen, ob eine bestimmte Baugruppe in der GAC ist. Ich kenne den Namen, die Version und das öffentliche Schlüssel-Token dieser Assembly. Gibt es irgendwelche eingebauten Möglichkeiten, oder muss ich eine CustomAction schreiben, um das zu tun? Und wie würde ich diese CustomAction einrichten? (Das wäre bevor die Installation beginnt.)Erkennen, ob sich eine Baugruppe über WiX 3 im GAC befindet?

Antwort

3

Sie können FileSearch verwenden, um nach der Datei in% windir% \ assembly \ GAC (Wenn Sie alle anderen Werte kennen) ein bisschen hacky aber funktioniert.
Der vollständige Dateipfad wird in einer Eigenschaft gespeichert, die Sie in einer Bedingung vor dem Start der Installation verwenden können.

+0

Funktioniert für mich. Scheint ein bisschen hacky, direkt in das GAC-Verzeichnis zu gehen, aber ansonsten ist es ziemlich sauber. Die Verzeichnisse werden nach Name, Version und Token mit öffentlichem Schlüssel benannt, was praktisch genau das ist, was ich habe. – Promit

+0

Da die Assembly wie [Windir] \ assembly \ GAC_MSIL \ [DllNameWithout.dll] \ _ \ [DllNameWid.dll] benannt ist, funktionierte sie für mich nur bis [DllNameWithout.dll] – Sonhja

2

Muss vorsichtig sein. Assemblys können in mehr als nur dem Ordner% windir% \ assembly \ GAC installiert werden. Meine Assemblys werden meistens in% windir% \ assembly \ GAC_MSIL installiert. Suchen Sie einfach die% windir% \ Assembly \ und Sie sollten in Ordnung sein.

Verwandte Themen