Category Archives: TFS

VS2012 Update 1 verfügbar

Ab sofort ist das erste Update für Visual Studio 2012 verfügbar!
Es bringt für VC++ primär die Unterstützung für XP-SP3 mit, was ein großer Fortschritt ist.

Download: Visual Studio 2012 Update 1 – Multi-language
Offline-Installation: How to: Install Visual Studio 2012 Update 1 Offline

Mehr Infos zu VS2012 Update 1:

Nur als kleiner Hinweis: Die Unterstützung für XP-SP3 betrifft nur VC++ 2012, nicht aber .NET-Framework 4.5! Dies ist immer noch auf Vista und höher begrenzt!

Microsoft C++ Days in Deutschland!

C++ ist noch lange nicht tot! Microsoft hat in den letzten Jahren wieder mehr Resourcen in diesen Bereich investiert. Um wieder mehr auf diesen Bereich aufmerksam zu machen bzw. sich mal weider zu Informieren, was es alles gibt, solltest Du unbedingt auf einen der C++ Days gehen. Das beste dabei ist, das Ganze ist kostenlos! Also, gleich Anmelden:

  • 2.2.2012 14:00- 18:00 Berlin (ausgebucht)
  • 7.2.2012 14:00- 18:00 Bad Homburg (noch freie Plätze!)
  • 13.2.2012 14:00- 18:00 Karlsruhe (noch freie Plätze!)
  • 5.3.2012 14:00- 18:00 Köln (ausgebucht)

Mehr Infos unter:
http://blogs.msdn.com/b/cbinder/archive/2011/12/29/c-entwickler-uptodate-microsoft-c-day-2012.aspx

RegFree COM Activation und Pfad zu einem anderen Verzeichnis / Unit-Tests

Ich hatte hier das Problem, dass wir in einen VIsual Studio Unit Test eine COM-DLL verwenden müssen. Diesen wollen wir aber nicht auf dem Build-Server registrieren. Um dies zu umgehen, hab ich mittels CreateActCtx / ActivateCtx / usw. eine Klasse gemacht, mit der man ein Manifest zur Laufzeit aktivieren kann. Jetzt war aber das Hauptproblem, dass die Unit-Tests ja von einer Applikation ausgeführt werden, auf dessen Verzeichnis wir keinen Zugriff haben. Im Internet hab ich aber immer nur Beispiele gefunden, wo die COM-DLL im gleichen Verzeichnis wie die EXE lag. Dies geht hier aber nicht, sondern die DLL muss mit einem “DeployItem” auch in das entsprechende Out-Verzeichnis kopiert werden und von dort muss diese COM-DLL dann geladen werden. D.h. das Manifest muss auf diese Datei zeigen.
Ich hab das nicht hinbekommen…. mein erster Versuch war das “lpAssemblyDirectory” Feld in der ACTCTX Struktur zu setzen. Damit hab ich es aber nicht hinbekommen; hab alles erdenkliche versucht… er hat immer gemeldet, dass er die Datei nicht finden kann…
Dann hab ich es in der Manifest-Datei selber probiert. Dort hab ich es nur hinbekommen, wenn der <file name="NameDer.dll"> auf den relativen Pfad geändert hab, also: <file name="test\NameDer.dll">.
Aber sobald ich einen vollständigen Pfad angegeben hab, ging es nicht mehr… ich bin fast verzweifelt…
Dann endlich kam ich drauf (keine Ahnung wie): Man muss den ganzen Pfad angeben, aber für jeden Slash jeweils *zwei* einfügen! Also:
<file name="C:\\Temp\\Test\\NameDer.dll">
Und siehe da: Es funktioniert, auch wenn die DLL nicht im entsprechenden EXE-Verzeichnis liegt.

Somit können wir jetzt Unit Tests erzeugen, welche eigentlich eine Registrierung von COM-DLLs auf dem Server verlangt hätten.

Mehr Infos dazu siehe:
https://cfx.svn.codeplex.com/svn/Visual%20Studio%202008/CSRegFreeCOMClient/Program.cs
http://www.mazecomputer.com/sxs/help/sxsapi2.htm

TFS 2010 – Hotfix Rollup ist verfügbar

Für den TFS 2010 gibt es schon diverse “Hotfix Rollups”. Aktuell ist der September 2010 Hotfix Rollup verfügbar. Er behebt einige Fehler im TFS 2010.
Mehr Infos siehe:
A hotfix rollup (build 10.0.30319.341) is available for Team Foundation Server 2010

Der Hotfix kann hier runtergeladen werden:
KB983504 – TFS 2010: Important Post-RTM Releases – Home
oder auch hier:
TFS 2010: Important Post-RTM Releases

TFS2010 – Verwaltung von Alerts

Mit den TFS Power Tools kann man ja immerhin seine eigenen Alerts verwalten. Leider ist es damit als Admin aber auch nicht möglich andere Alerts zu verwalten bzw. anzuzeigen oder zu ändern.
Auch habe ich bei mir den Effekt, dass E-Mail Alerts welche ich für andere angelegt habe, nicht gesendet werden…

Um den Verlauf der Benachrichtigung zu sehen, kann man direkt auf dem Data-Tier in der SQL-Datenbank Folgende Abfrage ausführen:

SELECT TOP 10 [HistoryId],[JobSource],[JobId],[QueueTime],[StartTime],[EndTime],[AgentId]
,[Result],[ResultMessage],[QueuedReasons],[QueueFlags]
  FROM [Tfs_Configuration].[dbo].[tbl_JobHistory]
  WHERE [JobId] = 'A4804DCF-4BB6-4109-B61C-E59C2E8A9FF7'
  ORDER BY [StartTime] DESC

Um zu sehen, was für Alerts alles eingerichtet sind kann man die Folgende Abfrage ausführen:

SELECT TOP 50 [Id],[EventType],[Expression],[SubscriberId]
,[Schedule],[DeliveryType],[Address],[Classification]
  FROM [Tfs_DefaultCollection].[dbo].[tbl_EventSubscription]

Das “DefaultCollection” muss man durch die entsprechende TFS-Collection ersetzen.