Frage

Ich erstellung ein Installationsprojekt in meiner Lösung mit WIX 3.8. Als Teil dieser Installation erstellte ich einige Startbedingungen, von denen einer überprüft, dass Microsoft .NET Framework 4.5.1 installiert ist.

Um dies zu tun, möchte ich einige der Eigenschaften in der WIXNETFXEXTESSION-LIB verwenden, die für ältere Versionen des .NET-Frameworks gut funktionieren scheint. Es gibt ein Beispiel dafür, wie man dies auf http://wixtoolset.org /Documentation/Manual/v3/howtos/redistributables_and_install_checks/check_for_dotnet.html Dies funktioniert nicht für .NET 4.5.1, jedoch gibt es jedoch keine netframework451-Eigenschaft, um zu überprüfen.

Blick auf die Quelle für das NetFX451.WXS-Modul ( http://wix.codeplex.com/sourcecontrol/latest#SRC/ext/netfxextren/wixlib/netfx451.wxs ) Es scheint, dass es keine separate Eigenschaft für .NET 4.5.1 gibt, aber vielmehr Es verwendet auch das gleiche netframework45. Wie ich es verstehe, ist V4.5.1 ein an-Stelle-Upgrade für v4.5, sodass er dieselben Registrierungsschlüssel verwendet (ich denke). Wie auch immer, in diesem Modul prüfen sie einfach die von netframework45 zurückgegebene Versionsnummer wie folgt:

generasacodicetagpre.

Also nahm ich an, dass ich einfach einen Zustand wie folgt schreiben könnte:

generasacodicetagpre.

, dadurch wurde jedoch die Fehlermeldung auf einer Computer zurückgegeben, die ich weiß, dass der .NET Framework 4.5.1 installiert ist. Also habe ich einen Zustand so erstellt, dass ich nur sehen konnte, dass die Versionsnummer aus der Registrierung zurückgegeben wird:

generasacodicetagpre.

Dies zeigt ein Meldungsfeld mit dem folgenden Text: # 378758, also weiß ich, dass der Wert in der Registrierung korrekt ist.

Ich bin also ein bisschen verwirrt, warum mein Zustand fehlgeschlagen ist. Gibt es etwas offensichtlich, das ich hier vermisse, oder gibt es eine andere Möglichkeit, diesen Wert im Bedingungselement zu vergleichen?

Hier ist der Fix, um das Hash-Symbol wie von phildern vorgeschlagen hinzuzufügen:

generasacodicetagpre.

War es hilfreich?

Lösung

Sie enthalten das # im Vergleich, das wird nicht helfen.Haben Sie versucht, das # in Ihrem CDATA-Vergleich einzubeziehen?

Ich würde davon ausgehen, dass, wenn Microsoft-People-Post-Beispiele zum Erkennen von Framework-Versionen, nicht mit einer einfachen Registrysuche in einer MSI-Datei erstellt werden kann.

http://blogs.msdn.com/B / Astebner / Archiv / 2013/10/17/10457758.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top