Wix: Launch Conditions definieren
Jetzt habe ich ein MSI Paket gebaut, welches einen Windows-Dienst installiert und hatte das Problem, das dieser Dienst beim Starten abstürtzt.
Der Grund dafür war, das ich mit dem Dienst versuche einen Wert aus der Registry zu lesen, den ein Programm Schreibt, welches nicht installiert war.
Demzufolge: Kein Programm installiert - Kein Registry-Schlüssel zum auslesen.
Für diesen Fall wäre es doch schön, wenn man direkt beim Installieren des MSI-Paketes prüfen könnte, ob das entsprechende Programm, bzw der RegistryKey vorhanden ist.
Dies geht mit Launch Conditions im Wix-Code des MSI Paketes.
Mehr…
Wix: Installer mit Mondo UI bauen
Will man etwas aufwändigere UI´s für seine MSI Pakete benutzen, so muss man die WixUIExtension.dll beim Build der MSI-Datei mit einbeziehen.
Hierzu muss man Wix beim aufruf sagen, wo es diese UI-Extension DLL findet:
1 2 | "C:\Programme\Windows Installer XML v3\bin\candle.exe" setup.wxs "C:\Programme\Windows Installer XML v3\bin\light.exe" setup.wixobj -ext WixUIExtension -cultures:de-de -o Setup.msi |
Tools für Entwicklungs-Rechner
Ich habe hier zum testen und für Präsentationszwecke in Softwaremeetings über RDP eine Windows XP VM mit dem Namen “devxp” als Entwicklungs-Rechner eingerichtet.
Da wir hier jetzt von vmware-server2 unter Linux auf ESX gewechselt sind, wollte ich die neuen Systeme nicht mit meiner Test-VM belasten und entschied mich diese VM in VirtualBox auf meinem Rechner neu zu installieren.
Hier eine Liste der Tools, welche ich auf so einem Rechner so alle installiert habe:
Mehr…
Eigene NAnt Plugins schreiben - Teil 2
Nachdem wir im ersten Teil ein kleines, rudimentäres Plugin geschrieben haben, welches einfach nur stumpf einen Text ausgibt, wollen wir jetzt ein Plugin bauen, das weiteren Text ausgibt (diesmal aber mit einem Parameter)
Eigene NAnt Plugins schreiben
NAnt ist praktisch ![]()
In meinem CI und Build-Prozess benutze ich NAnt inzwischen zum erstellen der Dokumentation, das Obscufactieren der Assembys und für das anschlißende packen und FTP-upload selbiger.
In Verbindung mit CruiseControl.net kann man die NAnt ausgaben und timings im CC.NET Dashboard nett anschauen.
Mehr…
MSSQL: Kein zugriff auf ReportServer$SQLEXPRESSTempDB
Beim Neu anlegen eines Benutzers für den MSSQL 2008 Server habe ich folgenden Fehler bekommen:
Der Serverprinzipal 'test' kann unter dem aktuellen Sicherheitskontext nicht auf die 'ReportServer$SQLEXPRESSTempDB'-Datenbank zugreifen.
Nach etwas suchen habe ich auf einer Seite vom Microsoft die Lösung gefunden:
1 2 3 | USE ReportServer$SQLEXPRESSTempDB ; GO GRANT CONNECT TO guest ; |
Wenn man diesen Query als sa ausführt, bekommt der “guest”-Benutzer die Rechte zum Verbinden der Datenbank.
Hat er diese nicht, kann man trotzdem auf die Datenbank zugreifen, aber das SQL-Server Management Studio meckert oben beschriebenen Fehler an.
MySQL: SUBSTRING_INDEX
SUBSTRING_INDEX ist eine praktische funktion um einen String in MySQL anhand eines trennzeichen zu trennen.
Mehr…
Babel-Buildtask für Nant
Babel ist ein Code-Obfuscator, welchen es unter anderem auch in einer Kostenlosen edition gibt.
Außerdem ist es der einzige mir bekannte (kostenlose), welcher sich als NANT-Task integrieren lässt.
Die NANT DLL lässt sich unter dem Link http://www.babelfor.net/Underground.aspx herunter laden.
Die DLL in der zip einfach in das bin-Verzeichnis von NANT kopieren.
Was Babel jetzt braucht ist nur eine Datei zum einlesen, und ein Pfad wo die fertige (Obsufactorierte) Datei hin soll.
Mehr…
PostgreSQL: zugriff aus dem Netzwerk
Für meinen neuen Datenbankserver habe ich mich auch entschlossen einen PostgreSQL-Server zu installieren.
Dieser Erlaubt Standard-Mässig nur das verbinden von lokalen Verbindungen.
Um Vom gesamten Netzwerk zugreifen zu können braucht man einen Eintrag in der hba.conf
1 2 3 | # TYPE DATABASE USER CIDR-ADDRESS METHOD host all all 127.0.0.1/32 md5 host all all 192.168.50.0/24 md5 |
Die erste Zeile gibt die Lokalen Verbindungen an - und die zweite Zeile gibt an, dass alle Verbindungen aus dem 192.168.50.* Netz zugelassen sind.