Team Foundation Build 2012 Issue – The target CleanWorkspacePackageTempDir does not exist

Audience

Everyone

When you execute a build of a MVC3 or MVC2 project from 2010 in Team Foundation Build 2012 you get an error of “The target ‘CleanWorkspacePackageTempDir’ does not exist in the project”.

I was working with a customer that upgraded directly from Team Foundation Server 2008 to Team Foundation Server 2012 and that wanted to take advantage of the power of Continuous Integration. However their Solutions and Projects files we upgrades from previous versions of Visual Studio and this caused an interesting issue…

The target “CleanWorkspacePackageTempDir” does not exist in the project
Figure: The target “CleanWorkspacePackageTempDir” does not exist in the project

Applies to

  • Team Foundation Build 2012
  • ASP.NET MVC 2
  • ASP.NET MVC 3
  • ASP.NET MVC 3 Update

Findings

After some time looking into what might be missing from the build server it looks like this is more due to MvcBuildViews conflicting with Web Deploy packaging:

When we first installed the build server we did not add anything other than Visual Studio 2010 Ultimate to allow for building of out of the box applications. However, when we additionally needed to build and MVC3 application that is deployed to Azure we installed those tools and SDK’s using the recommended approach of using the Web Platform Installer.

Web Platform Installer install updates MVC and removes CleanWorkspacePackageTempDir
Figure: Web Platform Installer install updates MVC and removes CleanWorkspacePackageTempDir

This does however also install the Web Deploy packaging process as a pre-requisite and thus we have a new problem on out build server. Why you might ask?

Well, it looks like when you wanted to precompile your Views with MVC2 and you enabled “MvcBuildViews” you also had to add a “DependsOnTargets” attribute with “CleanWorkspacePackage; CleanWorkspacePackageTempDir; CleanWebsitesTranformParametersFiles;” to make it all work.

This was fixed by an update to MVC3 that even removed the targets. Hence the error… bummer…

So it looks like the CleanWorkspacePackage, CleanWorkspacePackageTempDir and CleanWebsitesTranformParametersFiles targets have been removed from the newer versions of the web targets file.

At some point someone enabled MvcBuildViews
Figure: At some point someone enabled MvcBuildViews

So at some time in the past we wanted to enable MvcBuildViews and we added the following to our Project file:

 

While this worked at the time, it now caused the error that we saw.

While I initially fixed the issue, see solution below, for the MVC3 Azure build that we were trying to get working, there was a nock on affect on some of the other builds.

Workaround – Uninstall to fix CleanWorkspacePackageTempDir in Team Foundation Build

You can try to uninstall the things that you added to the build server but this tends to be a red herring and the damage is almost always done when you install SDK’s. In addition you probably added those things for a reason and you probably still have that reason. Short of completely rebuilding the Build Server this almost never works…

Workaround – Use old publish targets to re-enable in Team Foundation Build

As pointed out by the customer this should really have been the default, but the Azure and MVC teams have taken the approach to implicitly upgrade to the latest targets when they become available. The do however allow you to explicitly use the older targets.

As I can find no information on this online I will fall back on Barry Schnell’s awesome investigation on the server itself to find out that the new updates created a new build target variable called “UseNewPublishTargets” that defaults to True. When this is set to true the newer version of “microsoft.web.publishing.targets” is used and the build will fail.

Add the “/p:UseNewPublishTargets="false"” MSBuild Argument
Figure: Add the “/p:UseNewPublishTargets=”false”” MSBuild Argument

You can however set this variable to false by adding “/p:UseNewPublishTargets=”false”” to the MSBuild Arguments in the Build Definition on Team Foundation Server.

Solution – Remove target CleanWorkspacePackageTempDir for MSBuild in Team Foundation Build

It looks like the CleanWorkspacePackage, CleanWorkspacePackageTempDir and CleanWebsitesTranformParametersFiles targets have been removed from the newer versions of the web targets file and we just need to remove them from the Project file.

So we can remove everything in the “DependsOnTargets”
Figure: So we can remove everything in the “DependsOnTargets”

So we can now use the following without the “DependsOnTargets” directive:

 

This should solve the problem permanently, but make sure you test your application thoroughly…

Upcoming Training Opportunities

These are the next five classes we have, and you can check out our full public schedule of classes.

Timezone:
Live Virtual Professional Scrum Product Owner online 5th June 2023
Virtual
5-8 Jun, 2023
09:30-13:30 BST
4 half-days
Live Virtual PAL Evidence-Based Management Online on 19th June 2023
Virtual
19-20 Jun, 2023
09:00-13:00 BST
2 half-days
APS 19th June 2023
Virtual
19-22 Jun, 2023
09:00-13:00 EDT
4 half-days
Live Virtual Professional Scrum Master Online on 26th June 2023
Virtual
26-29 Jun, 2023
09:00-13:00 EDT
4 half-days

We can deliver any of our courses as private in-house training over Microsoft Teams & Mural. We also recommend training based on your accountabilities or role, you can go directly to recommended courses for Scrum MastersProduct OwnersDevelopers and Agile Leaders.

Create a conversation around this article

Share on Facebook
Share on Twitter
Share on Linkdin

Related Courses

No items found

Read more

Martin Hinshelwood nkdAgility.com
https://youtu.be/_fFs-0GL1CA Why do you encourage people to follow a certification path in their career journey? I would encourage you to follow a scrum certification path for the same reason that people go to university. The same reason that people do any course or certification. It gets you a foot in …
Martin Hinshelwood nkdAgility.com
https://youtu.be/QGXlCm_B5zA What will you learn on the PSM II course? There are two main things that most scrum masters will learn on the PSM II or Advanced Professional Scrum Master course. That they haven’t been working effectively as a scrum master to date. That they are there to empower and …
Martin Hinshelwood nkdAgility.com
In Scrum Events across the world, I hear repeated the phrase “that’s how agile works” when describing behaviours that are both unprofessional and the very opposite of an agile mindset. These behaviours will inhibit agility and are a result of a lack of understanding of the underlying principles. We need …
Martin Hinshelwood nkdAgility.com
https://youtu.be/klBiNFvxuy0 What is the most common Aha moment people have in a scrum course? It depends on the scrum course they are attending. The content presented in the Applying Professional Scrum (APS) course leads to very different epiphanies when compared to the content presented on an Advanced Professional Scrum Master …

OUR TEAM

We believe that every company deserves high quality software delivered on a regular cadence that meets its customers needs. Our goal is to help you reduce your cycle time, improve your time to market, and minimise any organisational friction in achieving your goals.

naked Agility Limited is a professional company that offers training, coaching, mentoring, and facilitation to help people and teams evolve, integrate, and continuously improve.

We recognise the positive impact that a happy AND motivated workforce, that has purpose, has on client experience. We help change mindsets towards a people-first culture where everyone encourages others to learn and grow. The resulting divergent thinking leads to many different ideas and opportunities for the success of the organisation.