2 Stimmen

Wie schreibe ich eine Startbedingung für MVC3 in WIX?

Ich habe das WIX-Bereitstellungsprojekt in VS2010. Meine Anwendung benötigt MVC 3.0 installiert. Die Frage lautet wie erstelle ich eine Startbedingung im Installer, damit überprüft wird, ob MVC3 auf dem Server vorhanden ist?

Dies scheint eine einfache Frage zu sein, aber alle mir bekannten Methoden, dies zu tun, haben Probleme:

1) Verwendung von Standardproperties zur Überprüfung der Anwendungsinstallation (wie im http://weblogs.asp.net/jacqueseloff/archive/2009/04/17/detecting-asp-net-mvc-1-0-using-wix.aspx gezeigt):

Installed OR ASP_NET_MVC_3_0

Das Problem ist, dass es immer als falsch ausgewertet wird. Möglicherweise gibt es keine solche Eigenschaft "ASP_NET_MVC_3_0". Zudem funktioniert es nicht einmal beim Beispiel mit der MVC1.0-Überprüfung.

2) Manuelle RegistrySearch-WIX-Bedingung. Das Problem hier ist, dass ich keinen Registrierungsknoten habe HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\ASP.NET MVC 3 Dies ist die zweite Frage: Warum fehlt es?? Ich habe definitiv MVC 3 installiert. Und Mvc 1.0 und 2.0 davor, aber es gibt keinen MVC-Knoten unter dem ASP.NET-Zweig (nur Unterchlüssel 2.0.50727.0 und 4.0.30319.0).

3) FileSearch, um die MVC-DLL zu finden.

     Installed OR ASP_NET_MVC_3_0_DLL

Aber es ist nicht garantiert, dass MVC sich in den Programmdaten befindet - es könnte auch an einem anderen Ort installiert sein.

Ich denke, die beste Antwort wäre, warum die MVC-Installation keinen Registrierungseintrag gemacht hat und wie man die Situation auf dem Server verhindern kann. Aber jede andere Lösung für das Hauptproblem (Startbedingung) wäre hilfreich.

PS: Mein Betriebssystem ist Windows 7.

1 Stimmen

Wir verteilen die mvc dll's mit unserer Anwendung und verlassen uns nicht darauf, dass sie installiert sind. Viel einfacher und einfacher und dann müssen Sie nicht nach ihnen mit WiX suchen.

0 Stimmen

Vielen Dank, wir haben auch eine solche Variante in Betracht gezogen. Es wäre jedoch besser herauszufinden, ob es bereits installiert ist.

1voto

Rob Mensching Punkte 31828

Die erste Option erfordert die zweite Option (erste). Der Blogbeitrag, den Sie verlinkt haben, fehlt dieser Schritt. Sie benötigen ein RegistrySearch-Element wie:

Dann sollte Ihr Property gefüllt sein. Wenn der Registrierungsschlüssel fehlt, müssen Sie sich mit dem Paketbesitzer in Verbindung setzen, um zu verstehen, warum ihr Registrierungsschlüssel nicht geschrieben wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X