VisualStudio ItemTemplate安装错误:值不在预期范围内

问题描述

|| 我编写了一些非常简单的Visual Studio c#项模板。模板基于VisualStudio 2010 SDK SP1。除一项模板外,其他所有项目均正常运行; 经过一些小的更改后,我尝试将模板再次应用于已经存在但又为空的单元测试项目,并收到以下错误:\“值未在预期范围内。\”在某些情况下也发生了错误相同解决方案的其他项目。 恢复项目模板中的更改会导致相同的错误。似乎有些东西坏了……经过大量重建和uninstallAddIn-closeVS-installAddIn-restartVS,我删除退出的单元测试项目,并创建了一个新项目,该项目与旧的完全相同的引用无效,并且一切正常。 这是template.vstemplate文件内容
<Vstemplate Version=\"3.0.0\" Type=\"Item\" xmlns=\"http://schemas.microsoft.com/developer/vstemplate/2005\">
  <TemplateData>
    <Name>Tests</Name>
    <Description>No description available</Description>
    <Icon>TestsItems.ico</Icon>
    <TemplateID>662c9d07-0e83-4d4d-87d7-1fcc13667eb8</TemplateID>
    <ProjectType>CSharp</ProjectType>
    <requiredFrameworkVersion>2.0</requiredFrameworkVersion>
    <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
    <DefaultName>EntityClass.cs</DefaultName>
  </TemplateData>
  <TemplateContent>
        <References>
            <Reference>
                <Assembly>System</Assembly>
            </Reference>
        </References>

    <ProjectItem TargetFileName=\"Controller/$fileinputname$ControllerTest.cs\" ReplaceParameters=\"true\">Controller/ControllerTest.cs</ProjectItem>
    <ProjectItem TargetFileName=\"Models/$fileinputname$RepositoryTest.cs\" ReplaceParameters=\"true\">Models/RepositoryTest.cs</ProjectItem>
  </TemplateContent>
</Vstemplate>
这是课程文件之一的内容
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Web.Mvc;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using NUnit.Framework;
using $rootnamespace$.Controllers;
using $rootnamespace$.Models;
using Assert = NUnit.Framework.Assert;
using IgnoreAttribute = Microsoft.VisualStudio.TestTools.UnitTesting.IgnoreAttribute;

namespace $rootnamespace$.Tests.Controllers
{
    /// <summary>
    /// Testclass for the $fileinputname$Controller
    /// </summary>
    [TestClass]
    public class $fileinputname$ControllerTest
    {

    }
}
还有一点需要注意:VSIX项目消耗了C#项模板项目。 有谁知道这个错误的更多信息以及为什么会发生?     

解决方法

就我而言,答案很简单。由于占位符名称错误而发生错误。