VS 2008: Projektspezifische Umgebungsvariablen

Letzte Woche habe ich eher zufällig entdeckt, dass man in den Projekteigenschaften auf der Debugging-Seite auch zusätzliche Umgebungsvariablen definieren kann:

Projektspezifische Umgebungsvariablen

Die Option Zusammenführungsumgebung legt fest, ob die neuen Umgebungsvariablen mit den bestehenden zusammengeführt oder ob die aktuellen Umgebungsvariablen ersetzt werden sollen.

Das macht es bedeutend einfacher, entsprechend der gewählten Konfiguration (Win32 oder x64) mit dem jeweils passenden Bibliotheksverzeichnis zu arbeiten. Bisher hatte ich mir immer mit einem kleinen Programm geholfen, das die Umgebungsvariablen vor dem Start der IDE anpasste. Damit war allerdings kein spontanes Umschalten zwischen der Win32-Version und der x64-Version möglich.

Von SourceSafe zu Subversion

Seit mehr als 11 Jahren nutze ich Visual SourceSafe als Quellcodeverwaltung, letzte Woche habe ich meine Projekte auf Subversion umgestellt. Als SourceSafe-Geschädigter muss man sich aber erst einmal an das neue Modell gewöhnen. Unter SourceSafe checkt man die zu bearbeitenden Dateien einzeln oder in Gruppen aus, editiert sie und checkt sie dann wieder ein. Eingecheckte Dateien werden mit einem Schreibschutz-Attribut versehen und können daher nicht einfach so bearbeitet werden. Damit das Auschecken funktioniert, muss Visual Studio eine ständige Verbindung zum Server mit der Quellcodeverwaltung haben. Arbeitet man mal unterwegs, dann simuliert Visual Studio ein Auschecken, indem es das Schreibschutz-Attribut der lokalen Datei entfernt. Beim nächsten Andocken an den Server werden die Dateien dann richtig ausgescheckt.

Mit Subversion ist das alles ein wenig anders. Nach dem Abruf einer Arbeitskopie vom Subversion-Server kann man Dateien beliebig editieren. Sind die Änderungen abgeschlossen, werden die Dateien wieder auf den Subversion-Server übertragen. Dieser speichert dann nur die Unterschiede und hält so seine Datenbank möglichst klein. Eine Verbindung zum Subversion-Server muss nur während des Abrufens/Aktualisierens der Arbeitskopie und des Übertragens zurück bestehen. Damit lässt es sich auch problemlos unterwegs arbeiten.

Die Unterstützung von mehreren Entwicklungszweigen (Branches) ist in SourceSafe quasi gar nicht vorhanden. Zudem wird die Verbindung eines Projekts zur Quellcodeverwaltung direkt in der Projektdatei gespeichert, was die Ablage von Projektkopien in anderen Ordnern (z.B. bei einem neuen Release) sehr erschwert. Wenn man dann die Verbindung nicht löst, möchte Visual Studio immer die Verbindung zum Originalprojekt herstellen.

Mit Subversion gibt es diese Probleme nicht. Verschiedene Entwicklungszweige sind einfach zu verwalten, auch die Übernahme von Änderungen in andere Zweige ist problemlos möglich. Die Projektdateien sind anderen Dateien gleichgestellt und enthalten keine datenbankspezifischen Informationen mehr.

Das ermöglicht es mir jetzt endlich, ein paar Wochen vor der Veröffentlichung eines Updates einen separaten Zweig dafür zu erstellen, die aktive Entwicklung dafür einzustellen und wirklich nur noch nötige Korrekturen vorzunehmen. Die normale Entwicklung an der nächsten Version kann dann schon weitergehen, ohne auf das geplante Update Einfluss zu nehmen.  Damit entfällt nun auch die Wohlverhaltensperiode vor und nach dem Release, in der ich mich zwingen musste, meine Finger im Zaum zu halten. Treten nach dem Update doch noch unerwartete Fehler auf, so können diese im separaten Zweig behoben und schneller als Fix zur Verfügung gestellt werden.

Die Einrichtung von Subversion ist sehr einfach. Nach der Installation wechselt man in der Kommandozeile in das bin-Verzeichnis und richtet svnserver.exe als Dienst ein:

sc create svnserve binPath= “C:\Programme\Subversion\bin\svnserve.exe –service -r D:\Projekte\Subversion” DisplayName= “Subversion” depend= tcpip start= auto

Anschließend muss nur noch ein neues Projektarchiv erstellt werden. Alternativ kann man sich auch das Rundum-Sorglos-Paket VisualSVN Server herunterladen. Dieses installiert einen Apache-Server samt Subversion-Integration und erstellt auch gleich das Projektarchiv. Damit hatte ich meine ersten Gehversuche gemacht, bin aber anschließend auf die performantere Dienst-Methode umgestiegen.

Auf dem Client-Rechner wird TortoiseSVN installiert, damit erfolgt der Zugriff auf die Quellcodeverwaltung bequem aus SpeedCommander (oder dem Explorer) heraus. Für die Integration in Visual Studio empfiehlt sich VisualSVN. Die Einzellizenz kostet $49 und macht sich schnell bezahlt.

Letztlich kann ich jedem SourceSafe-Anwender nur empfehlen, auf Subversion zu wechseln. Beim Einstieg beantwortet die umfangreiche Dokumentation viele Fragen, für die ersten Gehversuche kann man sich ein Projektarchiv zum Spielen einrichten. Mit einer möglichen Konvertierung der SourceSafe-Datenbank habe ich mich nicht beschäftigt, ich wollte einen frischen Start ohne Altlasten.

Unzustellbar

Nach dem Beantworten einer Supportanfrage und dem Verschicken der Antwort tauchte sofort eine eMail mit dem Titel Unzustellbar: FeedBack SpeedCommander 12.10.5270 im Posteingang von Outlook auf. Der Text war folgender:

Ihre Nachricht hat einige oder alle Empfänger nicht erreicht.

Betreff: RE: Feedback SpeedCommander 12.10.5270
Gesendet am: 25.05.2008 10:59

Folgende Empfänger konnten nicht erreicht werden:

‘zensiert.zensiert.@web.de’ am 25.05.2008 10:59
Der angeforderte Vorgang ist fehlgeschlagen.

Ist der abschließende Punkt am Ende des Namens (vor dem @) entsprechend der Spezifikation gültig oder stellt sich Outlook 2003 hier zu zickig an?

Neue Betaversion (12.20.5375)

Im Anwenderforum steht eine neue Betaversion zum Download bereit, für den Zugriff auf den Betabereich muss man sich im Forum anmelden. Insbesondere für den NC-Auswahlmodus gibt es einige Verbesserungen, es ist nun z.B. auch möglich, Dateien durch Ziehen mit gedrückter rechter Maustaste zu markieren (ohne Lasso).

Farbschemen umbenennen

Mich hatte schon länger gestört, dass man selbstdefinierte Farbschemen in SpeedCommander nicht umbenennen kann. Für die Version 12.20 habe ich nun eine solche Funktion eingebaut. Neben der Hinzufügen- und Entfernen-Schaltflächen befindet sich jetzt auch eine Umbenennen-Schaltfläche, die einen Eingabedialog für den neuen Namen öffnet:

Farbschema umbenennen

Service Pack 3 Setup-Fehler

Bei der Installation des Service Pack 3 für Windows XP wurde mir folgende Fehlermeldung angezeigt:

—————————
Service Pack 3 Setup-Fehler
—————————
Auf Laufwerk H: steht nicht genügend Speicherplatz für die Service Pack 3-Installation zur Verfügung. Mindestens 4 MB zusätzlicher freier Speicherlatz sind erforderlich. Wenn Sie ebenfalls Dateien für eine Deinstallation sichern wollen, erfordert die Installation 4 MB zusätzlichen freien Speicherlatz. Geben Sie Speicherplatz auf der Festplatte frei und wiederholen Sie den Vorgang.
—————————
OK  
—————————

H: ist das im Floppy-Laufwerk eingebaute Kartenlesegerät, ein Medium war nicht eingelegt. Nach der temporären Deaktivierung des Laufwerks in der Datenträgerverwaltung ließ sich das Service Pack ohne Fehler installieren.

Fehlende Miniaturansicht unter Vista

Einige Anwender hatten mir geschrieben, dass in der SC-Miniaturansicht keine Vorschaubilder für Bilddateien angezeigt werden. Stattdessen wird nur ein Icon mit dem verknüpften Dateisymbol angezeigt.

Als Grund dafür hat sich ein überflüssiger Eintrag in der Registrationsdatenbank herausgestellt. Erweiterungen für die Miniaturansicht werden über einen speziellen Schlüssel eingetragen, für .jpg-Dateien würde der Schlüssel so lauten:

[HKEY_CLASSES_ROOT\.jpg\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}

Der Schlüssel hat nur einen Wert, unter (Standard) wird die GUID für die Erweiterung eingetragen. Unter Windows XP lautet der Wert normalerweise {7376D660-C583-11d0-A3A5-00C04FD706EC} und zeigt auf die entsprechende Komponente des Betriebssystems. Ab Windows Vista existiert dieser Eintrag nicht mehr, da diese Komponente nicht mehr im Lieferumfang enthalten ist. Die Anzeige der Miniaturansichten für Bilddateien funktioniert trotzdem, wahrscheinlich behandelt das System bekannte Dateitypen automatisch.

Bei allen Anwendern, die mir zu diesem Problem geschrieben hatten, war aber der Schlüssel mit dem XP-Wert vorhanden. Das System hat nun versucht, diese Erweiterung zu laden, was aber fehlschlug. Dementsprechend bekam SpeedCommander kein Vorschaubild geliefert und zeigte das normale Dateisymbol an.

Wenn man mal nach {BB2E617C-0920-11d1-9A0B-00C04FC2D6C1} googelt, dann bekommt man über 1000 Treffer geliefert. In fast allen handelt es sich im eine nicht funktionierende Miniaturansicht. Als Abhilfe wird empfohlen, den oben genannten Schlüssel mit dem XP-Standardwert zu erstellen. Unter XP mag das noch funktionieren, unter Vista hat dies aber fatale Folgen. Die meisten Anwender waren sich allerdings sicher, dass sie den empfohlenen Reparaturversuch nicht vorgenommen haben. Meine Vermutung geht daher in die Richtung, dass eines der vielen “Tuning-Tools” hier eine automatische Reparaturoption anbietet.

Damit die Vorschaubilder wieder in SpeedCommander angezeigt werden, muss einfach nur der oben genannte Schlüssel gelöscht werden. Dies gilt aber nur für Windows Vista; und auch nur, wenn der Wert auf {7376D660-C583-11d0-A3A5-00C04FD706EC} gesetzt ist.

Fluffiges USB-Adapterset

Bei Jens im Laden entdeckte ich neulich ein kleines USB-Adapterset. Die Basis bildet eine auf 120 cm ausrollbare USB-Verlängerung, die dank kleinen Adaptern vielseitig einsetzbar ist.

Folgende Adapter sind enthalten:

  • USB A (männlich)
  • USB B (männlich)
  • USB Mini 5-Pin (männlich)
  • USB Mini 4-Pin Hirose (männlich)
  • USB Mini 4-Pin Mitsumi (männlich)
  • RJ-45
  • RJ-45 (Crossover)
  • USB A (weiblich) zu RJ-45

Damit lässt sich z.B. je nach Bedarf mal schnell ein kleines Netzwerkkabel (inkl. Crossover) basteln oder diverse andere USB-Kombinationen. Zudem ist alles noch sauber in einer kleinen Tasche untergebracht, also optimal für den kleinen Notfallkoffer:

USB-Adapterset

Löschen von einzelnen History-Einträgen

Auf Wunsch speichert SpeedCommander die letzten Eingaben in einem Eingabefeld, die Anzahl der Einträge lässt sich im Einstellungsdialog festlegen. Die gespeicherten Eingaben lassen sich auch wieder löschen, allerdings nur alle zusammmen.

Der Internet Explorer bietet bei seinen Formularfeldern die Möglichkeit, einzelne Einträge gezielt mit Entf zu löschen. Diese Funktionalität habe ich jetzt auch in SpeedCommander eingebaut. Das folgende Bild zeigt die Einträge, die nach der Eingabe von s vorgeschlagen werden:

Zu löschender Eintrag

Mit Hilfe von Pfeil nach unten wird der Eintrag www.sp-download.de ausgewählt, anschließend wird er mit Entf gelöscht. Bei der nächsten Eingabe von s wird nur noch ein Eintrag angezeigt:

Liste nach dem Löschen

Eine kleine Änderung gibt es bei der Übernahme des ausgewählten Textes. Wurde bisher das Eingabefeld schon während der Auswahl eines Eintrags aktualisiert, so muss jetzt die Auswahl mittels Tab oder Enter übernommen werden. Das ist im Internet Explorer aber auch nicht anders.

Der Inhalt von Kombinationsfeldern kann auf die gleiche Weise gelöscht werden. So lässt sich z.B. die Befehlseingabezeile am unteren Fensterrand von überflüssigen Einträgen bereinigen, ohne gleich die gesamte History löschen zu müssen.

Tabben beim Umbenennen

Bei der Implementierung des neuen Markierverhaltens beim direkten Umbenennen ist mir noch eine weitere interessante Neuerung in der Vista-Listenansicht aufgefallen. Wird während des Umbennenen-Vorgangs die Tabulator-Taste gedrückt, dann schließt die Listenansicht den Vorgang ab, wechselt zur nächsten Datei und bietet diese zum direkten Umbenennen an. So lassen sich ziemlich fix mehrere Dateien hintereinander umbenennen.

Nachteilig ist aber, dass die Listenansicht den nächsten Eintrag direkt auswählt, was im NC-Auswahlmodus etwas suboptimal ist. Um dies zu verhindern, habe ich diese Funktion einfach noch einmal selbst programmiert. Damit kommen auch die Anwender von Windows 2000/XP in den Genuss dieser Neuerung.