2011-04-13 34 views
1

我写了一些非常简单的Visual Studio c#项目模板。模板基于VisualStudio 2010 SDK SP1。除一个项目模板外,所有工作都正常;VisualStudio ItemTemplate安装错误:值不在预期范围内

我试图再次应用模板已经存在,但再次空单元测试项目和一些小的改动后,得到了以下错误:“值不在预期范围内”同样的解决方案的其他一些项目也出现错误。

恢复项目模板中的更改会导致相同的错误。东西似乎被打破...经过大量的重建和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 
    { 

    } 
} 

一个额外的注意:C#项目模板项目是与否有关消耗的VSIX项目。

有没有人知道更多关于这个错误,为什么会发生?

回答

1

在我的情况下,答案是很简单;由于占位符名称不正确而发生错误。

相关问题