Writing inline MSBuild tasks in C# for one-liners
Every now and then, when trying to do something in MSBuild, I hit a roadblock (or maybe just some unintuitive “feature”) and I’m left thinking “gosh, now I have to create a custom MSBuild task for this one-liner that is SO trivial in plain C#!”.
Well, no more with MSBuild 4.0. You can now write inline tasks in plain C# which can of course have input and output parameters.
For example, I needed to checkout a file from TFS before some task run and tried to write it. Checking out from TFS can easily be done with an Exec task:
<Exec Command="&quot;$(VS100COMNTOOLS)..\IDE\tf.exe&quot; checkout $(ExtenderNamesTargetFile)"
WorkingDirectory="$(MSBuildProjectDirectory)" />...