问题描述
||
我编写了一些非常简单的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#项模板项目。
有谁知道这个错误的更多信息以及为什么会发生?
解决方法
就我而言,答案很简单。由于占位符名称错误而发生错误。