McAfee Edition: The “CreateRiaClientFilesTask” task failed unexpectedly

I set up a Jenkins build server at work to compile a solution on every commit. I prefer the build to run from a clean state every time, so I was using the Rebuild (Clean and Build) target.

msbuild.exe /t:Rebuild MySolution.sln
rem ... lots of compilation output 
rem ...The "CreateRiaClientFilesTask" task failed unexpectedly.

Puzzled, I tried some different conditions and found that if I ran Build twice without Clean, I would usually get the second build to pass.

msbuild.exe /t:Build MySolution.sln
rem ... lots of compilation output 
rem ...The "CreateRiaClientFilesTask" task failed unexpectedly.

msbuild.exe /t:Build MySolution.sln
rem ... lots of compilation output 
rem ...Build Successful.

But this isn’t what anyone signs up for with a build server. The idea is to have a repeatable process you trust producing artifacts you can believe in.

Excluding Temporary ASP.NET Files

As it turns out, the problem was McAfee‘s On Access Scan. This process sits on the Windows build server and watches folders for writes, scanning files shortly there after. In the case of ASP.NET, incremental compilation happens within the folders

  • C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\
  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\

Excluding that directory and subdirectories from the McAfee On Access Scan (in group policy!) eliminated our flaky compilation issues.


2014-07-25: Added summary and syntax highlighting to msbuild examples.

puppet-gradle Contributions

Contributing to open source projects is often hit or miss. This article is about the great experience I had helping out with gini/puppet-gradle.

Read More

grunt-jenkins One Year On

In the year since I released grunt-jenkins on npm, I’ve been lucky enough to receive a few pull requests. This article highlights some of the awesome tooling that has been added to the JavaScript ecosystem recently, as well as some new features by contributors.

Read More

Android Refactoring: Removing Dead Code

A simple tip to keep in mind while refactoring any code: If you don’t need it right now, delete it. Source control is there for referencing old information. Here’s my real world example of this in action.

Read More

Google Play Android App Screenshots

Excited about releasing my first app to Google Play, I captured some thoughts from looking at other app screenshots in the store.

Read More

Hitting The Ground Running with Android Maven Plugin

This article covers getting up and running with android-maven-plugin. The material is a little dated now that most of the android community has moved on to the official gradle plugin, but the underlying theme of saving time by having a build for your mobile apps still rings true.

Read More

Guest Lecture

After practicing TDD in industry for a few years, I was invited to be a guest lecturer with a coworker at a nearby university. After an intriguing and dismissive comment from the crowd, we had a great discussion about the benefits of TDD.

Read More

Pull Request Accepted: Workaround No Longer Relevant

I wrote about a workaround for a minor issue with GVM a couple weeks back. This article covers how easy it is to contribute to GVM and how that workaround is no longer necessary. Hooray!

Read More