Freitag, 29. April 2011

Build-Datum im Dateinamen mit Windows Installer XML (WiX-Tools)

Für diejenigen die auch mal in die Verlegenheit kommen, mit WiX-Tools zu arbeiten (bei der Namensgebung hat wohl keiner an uns deutschsprachige gedacht... - andererseits hat das Mitsubishi bei seinem Pajero auch nicht ;) ) und dabei das Bedürfnis verspüren, ihre Dails/Weekly/Whatever-Builds mit einem Timestamp zu versehen:
<target name="AfterBuild">
<createproperty value="$([System.DateTime]::Now.ToString('yyyyMMdd_hhmm'))">
<output taskparameter="Value"
propertyname="DateString"></output>
</createproperty>

<copy skipunchangedfiles="true" sourcefiles="$(TargetPath)"
destinationfiles="\\zielserver\zieldatei\MyApp_Daily_$(DateString).msi">
</copy></target>

Das Target AfterBuild wird nach dem Build ausgeführt (oha!), zunächst wird die Systemfunktion DateTime aufgerufen mittels formatiertem ToString in eine Variable geschrieben. Diese wird schließlich verwendet um beim abschließenden Kopieren einen Datums-behafteten Dateinamen zu erstellen.

Funktioniert prinzipiell auch mit anderen Funktionen wenn sie vom verwendeten MSBuild zur Verfügung gestellt werden - einfach probieren.

Freitag, 22. April 2011

C# Dictionary und LINQ.First()

In C# ist bei Verwendung eines Dictionary und LINQ Vorsicht angesagt - First() liefert nicht immer zuverlässig das als erstes hinzugefügte Element bzw. das nach Key-Sortierung erste... - aber dann gibt es da noch Min(), ebenfalls von LINQ :)

Montag, 11. April 2011

Email mit GMail in C#

Grad vor 3 Tagen kurz nachgegrübelt, da schickt mir grad der CodeProject-Newsletter die Lösung:
Das will getestet werden :)