Team Build, Web Applications und Verzeichnisstrukturen bei mehreren Projekten

Zu verschiedenen Theman lassen sich im Internet verschiedene Lösungsansätze finden. Was aber, wenn sich ein Thema zusammensetzt aus verschiedenen Puzzleteilen? Dann bleibt einem häufig nichts anderes übrig, als sich Lösungs-Puzzleteile zu verschaffen, die Verzahnung mit einer Feile passend zu schleifen und zu hoffen, dass das Gesamtbild noch dem entspricht, was auf der Spezifikation Verpackung (um der Analogie treu zu bleiben) abgebildet war.

Ziel ist es, eine Solution, die aus mehreren Projekten besteht, mittels Team Build automatisch bauen zu lassen und dabei in der Drop-Location nicht alle Binaries in einem einzigen Verzeichnis zu erhalten sondern in einer vorgegebenen Verzeichnisstruktur, die nach Projekten getrennt eine gewisse Übersichtlichkeit bietet. Neben Konsolen- und Winform-Anwendungen befinden sich darunter auch Web-Anwendungen. Daraus ergeben sich drei Teilprobleme:

  1. Bauen mehrerer Projekte innerhalb einer Solution
  2. Erhalt einer Verzeichnisstruktur
  3. Team Build und Web-Anwendungen

 

Während sich der erste Punkt leicht selbst herausfinden lässt, fängt es bei zweiterem an, kompliziert zu werden. Zum Glück hat Aaron Hallberg dazu eine Beschreibung parat, die aufzeigt, wie eine Verzeichnisstruktur erhalten werden kann. Seit Orcas (Team Foundation Server 2008) gibt es in der Team Build Konfiguration die Eigenschaft CustomizableOutDir, über die gesteuert werden kann, dass das Zielverzeichnis vom Benutzer konfiguriert wird:

<CustomizableOutDir>true</CustomizableOutDir>

 

In dem Moment, in dem diese Eigenschaft gesetzt ist, schleift Team Build die Standardeinstellung nicht mehr in die Eigenschaft OutDir durch. Jetzt muss sie entsprechend selbst in den Projekt-Dateien konfiguriert werden (wobei das jeweilige Projekt natürlich sowohl weiterhin lokal als auch über Team Build gebaut werden können muss):

<!--<OutputPath>bin\Debug\</OutputPath>-->

<OutputPath Condition=" '$(TeamBuildOutDir)'=='' ">bin\Debug\</OutputPath>

<OutputPath Condition=" '$(TeamBuildOutDir)'!='' ">$(TeamBuildOutDir)My\Custom\Structure\ProjectSolution</OutputPath>

 

Befindet sich unter den Projekten auch eine Web-Anwendung, dann scheitert Team Build in dem Moment an der Aufgabe, wenn die Web Deployment Projects hinzukommen. Hintergrund ist, dass die WDP die Ausgabe der Web-Anwendung im bin-Verzeichnis erwarten, sie nach dem Team Build Prozess dort aber nicht zu finden sind.

Aaron zeigt in seinem Blog ebenfalls, wie dieses Problem gelöst werden kann, wobei der V1-Ansatz auch mit Orcas funktioniert. Genau wie oben lässt sich dann über die OutputPath Eigenschaft in dem WDP-Projektfile die Verzeichnisstruktur für die Drop Location festlegen.

Komplette VSTS 2008 Suite inkl. Team Foundation Server 2008

Wer neu ist im Umgang mit dem Team Foundation Server, sieht sich häufig mit Fragen konfrontiert wie "Wie funktioniert Branching?", "Warum muss ich regelmäßig mergen?", "Wie baue ich meine Software automatisiert mit Team Build?", "Wie kann ich dafür sorgen, dass die Versionsnummern der Assemblies automatisch inkrementiert werden beim TeamBuild?". Bei der letzten Frage spätestens sollte jedem klar sein: Das bedarf einiges an Experimenten... und das will nicht so recht zu einer produktiven Umgebung passen.

Seit Weihnachten 2008 gibt es dafür eine Lösung. Brian A. Randell hat Ende letzten Jahres einige VPC-Images für Microsoft entwickelt, die eine komplette Team Suite mit allem beinhalteten, was das Entwicklerherz höher schlagen lässt:

  • Team Foundation Server 2008 SP1
  • Visual Studio 2008 Team Suite SP1
  • Team System Web Access 2008 SP1
  • Team Foundation Power Tools, Oktober 2008 update
  • Den aktuellsten MSSCCI Provider
  • Team Explorer 2005 (notwendig, um TFS Reports anzupassen mit dem Visual Studio 2005)
  • Das Visual Studio 2008 Database Edition GDR
  • Aktueller Process Explorer, Process Monitor und Background Info
  •  

    In seinem Blogeintrag ist mehr darüber zu lesen.

    Wer allerdings derzeit versucht, die Images unter Windows 7 zu nutzen, kann unter Umständen enttäuscht werden. Virtual PC 2007 SP1 wird aus Kompatibilitätsgründen unter Windows 7 nicht unterstützt, und sollte der Prozesser keine Hardware-Virtualisierung unterstützen, wird auch das neue Windows Virtual PC (aktuell Beta) nicht funktionieren. Um herauszufinden, ob der Prozessor VT unterstützt schaut man sich entweder im BIOS um oder man nutzt folgendes Tool von Intel: Intel Processor Identification Utility.

    Falls der Prozessor keine VT unterstützt hier ein kleiner Tipp mit historischem Abriss für die Weiterbildung: Microsoft hat die Virtual PC Technologie im Jahr 2003 von der Firma Connectix gekauft und kündigte noch für Ende des Jahres die Veröffentlichung von Virtual PC 2004 an. Connectix hatte bis dahin mit der Firma innotek die Technologie als Lösung entwickelt, um x86 Anwendungen auf Macintosh Systemen mit PowerPC laufen zu lassen. Während Microsoft das Product als Virtual PC weiterentwickelte, arbeitete innotek parallel ebenfalls weiter und brachte es unter dem Namen VirtualBox im Jahr 2007 auf den Markt. Anfang 2008 wurde innotek von Sun Microsystems übernommen. Seitdem gibt es VirtualBox als Sun Produkt und steht genau wie Microsoft Virtual PC kostenfrei zum Download zur Verfügung. Soviel zur Historie.

    Langer Rede kurzer Sinn: VirtualBox nutzt ebenfalls das VHD Format für virtuelle Festplatten und es funktioniert problemlos unter Windows 7.

    Update: Unter Virtual Box werden u.U. verschiedene neue Geräte erkannt, sobald das Image gestartet wird. Dazu gehört neben dem USB Host auch z.B. der Netzwerkadaper. Um problemlos alle notwendigen Treiber automatisch installieren zu lassen, hilft es, das Windows Server 2003 R2 SP2 Tria-Image von Microsoft herunterzuladen. Die ISO's gibt es hier.

    Kostenlose Xtopia Kompakt noch in Köln, Berlin und Frankfurt

    Wer zurzeit noch in der Frage feststeckt, ob und wenn ja wie er seinen Anwendungen einen neuen (UI-) Anstrich verpassen soll, dem sei die kostenlose Xtopia Kompakt Roadshow ans Herz gelegt. Neben der Microsoft-typischen sehr guten Verpflegung wartet dort ein Angebot verschiedener Sessions mit extrem interessanten Inhalten und Demos zu den Themen Silverlight, Surface, UI-Design, Expression Blend, Multitouch, Windows Live Services und Rich Internet Applications.

    Oliver Scheer, Clemens Lutsch und Steffen Ritter legen sich ordentlich ins Zeug, um uns das Neueste vom Neuen nahezubringen. Das beinhaltet auch das kommende Silverlight 3!

    Nachdem die Roadshow München, Karlsruhe und Hamburg bereits hinter sich gebracht hat, gibt es noch folgende Termine und Veranstaltungsorte zur Auswahl:

  • 11. Mai 09, Köln
  • 12. Mai 09, Berlin
  • 20. Mai 09, Frankfurt
  •  

    Da es jeweils nur 100 Plätze gibt, ist es empfehlenswert, sich zügig anzumelden. Es lohnt sich!

    {You shape} it - We're on the road together

    Langsam macht es die Runde. Microsoft hat vor nicht all zu langer Zeit eine neue Website ins Leben gerufen, die Entwicklern, IT-Pro's und Designern gewidmet ist. Dirk Primbs schrieb bereits Anfang März: "Für jede dieser Zielgruppen wurde im Rahmen von {You shape} it ein spezielles Online-Magazin geschaffen, jedes dieser Magazine wird von Technikern verwaltet und ist gespickt mit relevanten, hochinteressanten Artikeln." 

    Ob es um Silverlight, WPF, neue Programmiersprachen oder einfach wenig bekannte Features in C# geht, bei {You shape} it werden wir zukünftig mit Sicherheit regelmäßig Expertenwissen vorfinden, und nachdem, was die Seite bereits jetzt für einen Eindruck macht, auch humorvoll präsentiert bekommen.

    Übrigens: Gegenwärtig gibt es als Sahnehäubchen für einen selbst geschrieben Artikel eine XBox 360 geschenkt. Mehr Info's gibt es hier.

    Update:

    Wer sich für das Thema Windows Installer Custom Actions in Visual Studio Setup Projekten interessiert, kann einen Artikel von mir jetzt online bei {You shape} it lesen.

    Visual Studio 2008 SP1 Bug behoben

    Microsoft liegen über 50.000 Crashreports vor, die von einem Bug in Visual Studio 2008 SP1 verursacht wurden, der die IDE von einem Moment auf den anderen abstürzen lässt. Reproduzieren lässt sich der Fehler wie folgt:

    • Ein Projekt öffnen
    • Layout ändern (beliebiges Fenster andocken/lösen)
    • Modus ändern (Debug starten/stoppen oder in den Vollbildmodus wechseln und wieder zurück)

     

    Visual Studio stürzt sofort ab. Brian Harry hat von diesem Fehler jüngst in seinem Weblog berichtet und verweist auf den jetzt zum Download zur Verfügung gestellten Bugfix unter KB960075. Allerdings wird auch darauf hingewiesen, dass es sich um einen QFE handelt, der noch nicht im Detail von Microsoft getestet wurde.

    Als QFE (Quick Fix Engineering) bezeichnet Microsoft Produktaktualisierungen, die bisweilen auch in einem Servicepack zusammengefasst werden (dessen Installation praktischer ist, als einzelne QFE's einzuspielen).

    Von Entwicklern für Entwickler

    Die TOP TECHNOLOGIES CONSULTING ist ein Beratungshaus mit starkem Fokus auf Microsoft Produkte, IT-Sicherheit und Dienstleistungen rund um technische und betriebswirtschaftliche Themen. Aus unseren Lösungen heraus entwickeln sich häufig eigenständige Produkte, die von unserem internen Entwicklerteam implementiert, gewartet und supported werden.

    Entwickler kennen das: Um ein spezifisches Problem zu lösen, sind häufig viele Puzzleteile erforderlich. Die Kunst es ist dabei, diese Puzzleteile zu finden und zu einem Gesamtbild zusammenzusetzen. Weblogs sind heutzutage ein probates Mittel, um an solche Infomationen zu kommen. Um auch unseren Beitrag zur Community zu leisten und um Diskussionen zu fördern, bloggen wir daher ab jetzt auch. Smile

    Über die Autoren

    Christian Jacob ist Leiter des Geschäftsbereiches Softwarearchitektur und -entwicklung und zieht als Trainer im Kontext der .NET Entwicklung sowie ALM-Themen Projekte auf links.

    Marcus Jacob fokussiert sich auf die Entwicklung von Office-Addins sowie Windows Phone Apps und gilt bei uns als der Bezwinger von Windows Installer Xml.

    Martin Kratsch engagiert sich für das Thema Projektmanagement mit dem Team Foundation Server und bringt mit seinen Java- und iOS-Kenntnissen Farbe in unser ansonsten von .NET geprägtes Team.

    Aktuelle Kommentare

    Comment RSS