Ошибка установки VisualStudio ItemTemplate: значение не попадает в ожидаемый диапазон - PullRequest
1 голос
/ 13 апреля 2011

Я написал несколько очень простых шаблонов элементов в Visual Studio c #.Шаблоны основаны на VisualStudio 2010 SDK SP1.Все работает отлично, за исключением одного шаблона элемента;

После некоторых незначительных изменений я попытался применить шаблон снова к уже существующему, но снова пустому проекту модульного теста и получил следующую ошибку: «Значение не попадает в пределыожидаемый диапазон. "Ошибка также произошла в некоторых других проектах того же решения.

Возврат изменений в шаблоне элемента приводит к той же ошибке.Кажется, что-то сломано ... После большого перестроения и удаления AddIn-closeVS-installAddIn-restartVS я удалил существующий проект Unit-test и создал новый с теми же ссылками, что и старый, не работающий, и все работает нормально.

Вот содержимое файла 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 Ответ

1 голос
/ 27 апреля 2011

В моем случае ответ был довольно прост;ошибка произошла из-за неправильных имен заполнителей.

...