| Index: visual_studio/NativeClientVSAddIn/UnitTests/TestUtilities.cs
 | 
| diff --git a/visual_studio/NativeClientVSAddIn/UnitTests/TestUtilities.cs b/visual_studio/NativeClientVSAddIn/UnitTests/TestUtilities.cs
 | 
| index 03fcd3eef6ba533d5958a893f5a17484e2252598..4b31df69bb297228ac0d70c3e94a9844c0308459 100644
 | 
| --- a/visual_studio/NativeClientVSAddIn/UnitTests/TestUtilities.cs
 | 
| +++ b/visual_studio/NativeClientVSAddIn/UnitTests/TestUtilities.cs
 | 
| @@ -52,7 +52,12 @@ namespace UnitTests
 | 
|        // to dte which fail because dte is busy.
 | 
|        ComMessageFilter.Register();
 | 
|  
 | 
| -      Type visualStudioType = Type.GetTypeFromProgID("VisualStudio.DTE.10.0");
 | 
| +      Type visualStudioType;
 | 
| +      if (IsVS2012())
 | 
| +        visualStudioType = Type.GetTypeFromProgID("VisualStudio.DTE.11.0");
 | 
| +      else
 | 
| +        visualStudioType = Type.GetTypeFromProgID("VisualStudio.DTE.10.0");
 | 
| +
 | 
|        DTE2 visualStudio = Activator.CreateInstance(visualStudioType) as DTE2;
 | 
|        if (visualStudio == null)
 | 
|        {
 | 
| @@ -83,6 +88,34 @@ namespace UnitTests
 | 
|        ComMessageFilter.Revoke();
 | 
|      }
 | 
|  
 | 
| +    public static void SetProjectType(Project project, string projectType, string platformName)
 | 
| +    {
 | 
| +        VCConfiguration config;
 | 
| +        IVCRulePropertyStorage rule;
 | 
| +
 | 
| +        config = TestUtilities.GetVCConfiguration(project, "Debug", platformName);
 | 
| +        rule = config.Rules.Item("ConfigurationGeneral");
 | 
| +        rule.SetPropertyValue("ConfigurationType", projectType);
 | 
| +
 | 
| +        config = TestUtilities.GetVCConfiguration(project, "Release", platformName);
 | 
| +        rule = config.Rules.Item("ConfigurationGeneral");
 | 
| +        rule.SetPropertyValue("ConfigurationType", projectType);
 | 
| +    }
 | 
| +
 | 
| +    public static bool IsVS2012()
 | 
| +    {
 | 
| +#if VS2012
 | 
| +        return true;
 | 
| +#else
 | 
| +        return false;
 | 
| +#endif
 | 
| +    }
 | 
| +
 | 
| +    static void AddPlatform(Project project, String platform, String copyFrom)
 | 
| +    {
 | 
| +        project.ConfigurationManager.AddPlatform(platform, copyFrom, true);
 | 
| +    }
 | 
| +
 | 
|      /// <summary>
 | 
|      /// Creates a blank valid NaCl project with up-to-date settings.  The path to the new solution
 | 
|      /// is returned.
 | 
| @@ -96,10 +129,13 @@ namespace UnitTests
 | 
|      public static string CreateBlankValidNaClSolution(
 | 
|          DTE2 dte, string name, string pepperCopyFrom, string naclCopyFrom, TestContext testContext)
 | 
|      {
 | 
| -      const string BlankSolution = "BlankValidSolution";
 | 
| +      string blankSolution = "BlankValidSolution";
 | 
| +      string srcSolution = blankSolution;
 | 
| +      if (IsVS2012())
 | 
| +          srcSolution += "2012";
 | 
|        string newSolutionDir = Path.Combine(testContext.DeploymentDirectory, name);
 | 
| -      string newSolution = Path.Combine(newSolutionDir, BlankSolution + ".sln");
 | 
| -      CopyDirectory(Path.Combine(testContext.DeploymentDirectory, BlankSolution), newSolutionDir);
 | 
| +      string newSolution = Path.Combine(newSolutionDir, blankSolution + ".sln");
 | 
| +      CopyDirectory(Path.Combine(testContext.DeploymentDirectory, srcSolution), newSolutionDir);
 | 
|  
 | 
|        try
 | 
|        {
 | 
| @@ -110,27 +146,33 @@ namespace UnitTests
 | 
|          if (PropertyManager.IsNaClPlatform(pepperCopyFrom))
 | 
|          {
 | 
|            // create nacl platforms first
 | 
| -          proj.ConfigurationManager.AddPlatform(Strings.NaCl64PlatformName, naclCopyFrom, true);
 | 
| -          proj.ConfigurationManager.AddPlatform(Strings.NaCl32PlatformName, naclCopyFrom, true);
 | 
| -          proj.ConfigurationManager.AddPlatform(Strings.NaClARMPlatformName, naclCopyFrom, true);
 | 
| -          proj.ConfigurationManager.AddPlatform(Strings.PNaClPlatformName, naclCopyFrom, true);
 | 
| -          proj.ConfigurationManager.AddPlatform(Strings.PepperPlatformName, pepperCopyFrom, true);
 | 
| +          AddPlatform(proj, Strings.NaCl64PlatformName, naclCopyFrom);
 | 
| +          AddPlatform(proj, Strings.NaCl32PlatformName, naclCopyFrom);
 | 
| +          AddPlatform(proj, Strings.NaClARMPlatformName, naclCopyFrom);
 | 
| +          AddPlatform(proj, Strings.PNaClPlatformName, naclCopyFrom);
 | 
| +          AddPlatform(proj, Strings.PepperPlatformName, pepperCopyFrom);
 | 
|          }
 | 
|          else
 | 
|          {
 | 
|            // create pepper platform first
 | 
| -          proj.ConfigurationManager.AddPlatform(Strings.PepperPlatformName, pepperCopyFrom, true);
 | 
| -          proj.ConfigurationManager.AddPlatform(Strings.NaCl64PlatformName, naclCopyFrom, true);
 | 
| -          proj.ConfigurationManager.AddPlatform(Strings.NaCl32PlatformName, naclCopyFrom, true);
 | 
| -          proj.ConfigurationManager.AddPlatform(Strings.NaClARMPlatformName, naclCopyFrom, true);
 | 
| -          proj.ConfigurationManager.AddPlatform(Strings.PNaClPlatformName, naclCopyFrom, true);
 | 
| +          AddPlatform(proj, Strings.PepperPlatformName, pepperCopyFrom);
 | 
| +          AddPlatform(proj, Strings.NaCl64PlatformName, naclCopyFrom);
 | 
| +          AddPlatform(proj, Strings.NaCl32PlatformName, naclCopyFrom);
 | 
| +          AddPlatform(proj, Strings.NaClARMPlatformName, naclCopyFrom);
 | 
| +          AddPlatform(proj, Strings.PNaClPlatformName, naclCopyFrom);
 | 
|          }
 | 
|  
 | 
| +        proj.Save();
 | 
| +
 | 
|          // Set the active solution configuration to Debug|NaCl64.
 | 
|          SetSolutionConfiguration(dte, NaClProjectUniqueName, "Debug", Strings.NaCl64PlatformName);
 | 
|  
 | 
| -        proj.Save();
 | 
|          dte.Solution.SaveAs(newSolution);
 | 
| +
 | 
| +        SetSolutionConfiguration(dte, NaClProjectUniqueName, "Release", Strings.NaCl64PlatformName);
 | 
| +
 | 
| +        dte.Solution.SaveAs(newSolution);
 | 
| +
 | 
|        }
 | 
|        finally
 | 
|        {
 | 
| 
 |