Error: this template attempted to load component assembly ‘Microsoft.IdentityModel.Tools.VS…”

Ran into this error while trying to go through the Claims Walkthrough: Creating Trusted Login Providers (SAML Sign-in) for SharePoint 2010 tutorial, and on the first step! I always hate these kinds of “tooling” errors, since they don’t even provide any learning for the task at hand. They are just a hassle that distracts me from actually working on the tutorial. The fix is quite simple, but I couldn’t find an answer using the normal searches on Bing (or Google, for that matter.)

The full error is as follows:

“Error: this template attempted to load component assembly ‘Microsoft.IdentityModel.Tools.VS, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL’. For more information on this problem and how to enable this template, please see documentation on Customizing Project Templates.”

…Just in case anyone is searching on all or part of the error text. And yes, I even tried searching for the “documentation on Customizing Project Templates.” Not useful at all for resolving this error.

In any case, when I attempted to complete Step 1, task 5b (“Select the ASP.NET Security Token Service Web Site template”) I discovered that the required template wasn’t installed locally. So I clicked the “Online Templates” option, found the “ASP.NET 3.5 STS Template” option, changed the name of my new local project (from the default of “STSWebSite1”), and clicked OK. The template attempted to load, and then VS gave me this error.

I tried a number of things, which I won’t go into here, but finally decided that maybe the issue was related to tooling. So I downloaded the Windows Identity Foundation SDK 3.5 (the template specifies that it’s for v3.5 of the .NET framework, but v4.0 may work just as well—I didn’t try it.) I installed the SDK—making sure to close Visual Studio first (actually, the installer wouldn’t let me continue until I’d done that part)—and voila, the next try at downloading the ASP.NET STS Template worked!