Builds with conditional NuGet publishing in Team Foundation Server

For a nightly build it makes no sense to publish a NuGet package as no code changed and therefore the same GitVersion is calculated.Since version 2017 Update 3 the on premise version of Microsoft's Team Foundation Server supports "Custom Conditions" on "Build Tasks" – but sadly not on "Task Groups".Here is what you need to exclude a step from a scheduled build: Here a screenshot of the condition in action:HTH

Data Lake WTF

After an Update of Visual Studio 2015 (14) I wanted to use my usual keyboard short cut ([ALT] + [D]) to expand the “Debug”-menu and … Two menu entries listening to [D] now? For this ridiculous amount of 4 (in words four) menu entries? Seriously? Just delete the folder. And voila: Back. Productive. Done. Dear Microsoft, please stop that kind of *marketing* making developers every day life harder. I know you can do much better! HTH,Daniel

Junctions with PowerShell

Junctions are really useful. It pretty easy to create them inside a command shell on windows: But as it is a command inside cmd.exe and not a executable you cannot use mklink from PowerShell without calling cmd.exe BUT: the New-Item cmdlet supports options to achieve the same since Windows Management Framework v.5.

Updating the .NET target framework for many projects

I do component based development. Meaning I have 30+ repos, builds and each of them has 1-10 projects – The main library project, tests, samples and so on. The news about the support end for the .NET Framework 4, 4.5 and 4.5.1 was the motivation to update ALL of my projects. I know this is not neccessary because… .NET 4.5.2, 4.6 and 4.6.1 are compatible, in-place updates on top of .NET 4, .NET 4.5, and .NET 4.5.1. This means that applications built to target any of these previous .NET 4.x versions will continue running on .NET 4.5.2 without change. No recompiling of apps is necessary. ... but I wanted to update them from version 4 to since a long time now. To do the job I wrote a small powershell script. Beside the path command set-frameworkVersion there is CommitAndPush-GitRepositories which commits and pushes all repositories found underneath the path variable.

Maven Archetypes in IntelliJ

IntelliJ has the ability to use Maven as build and project system. The concept of an archetype is a predefined project or project template.When “File | New project” is used to create a new project and “Maven” is selected the following dialog is displayed:IntelliJ comes with a few archetypes but of course custom ones can be added. On the MVN Repository for example several archetypes for Wildfly are available: http://mvnrepository.com/artifact/org.wildfly.archetypeThe XML snipped can be used as copy-paste-source for IntelliJ’s “Add archetype dialog”:After clicking the “OK” button the newly added archetypes are available as a source for the project creation. The custom archetypes are stored in the file “C:\{username}\Daniel\.IntelliJIdea{version}\system\Maven\Indices\UserArchetypes.xml” on Windows and “~/.IntelliJIdea{version}/system/Maven/Indices/UserArchetypes.xml” on Linux. Next define group and artifact identifier as well as version for the new project:Select the Maven version:And the project location:The result is a runnable quick start for working with the Wildfly application server.