Я пытаюсь создать свой собственный шаблон класса для Visual Studio, который называется "Public Class".
Я следовал официальным инструкциям MSDN о том, как вручную создать шаблон элемента в значительной степени к письму, но мне не повезло, что шаблон появился в разделе "Мои шаблоны" диалоговое окно «Добавить новый элемент».
Я разместил PublicClass.zip в следующем каталоге Windows XP:
C: \ Documents and Settings \ Мое имя пользователя \ Мои документы \ Visual Studio 2008 \ Templates \ ItemTemplates \ Visual C #.
Public Class.zip содержит следующие файлы:
- PublicClass.cs
- PublicClass.ico
- PublicClass.vstemplate
PublicClass.cs содержит ...
using System;
using System.Collections.Generic;
$if$ ($targetframeworkversion$ == 3.5)using System.Linq;
$endif$using System.Text;
namespace Pse.$projectname$
{
public class $safeitemname$
{
}
}
PublicClass.vstemplate содержит ...
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate
Type="Item"
Version="1.0.0"
xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>Public Class</Name>
<Description>An empty class declaration with access modifier = public and namespace = Pse.NameOfProject</Description>
<Icon>PublicClass.ico</Icon>
<ProjectType>CSharp</ProjectType>
<DefaultName>PublicClass.cs</DefaultName>
</TemplateData>
<TemplateContent>
<ProjectItem ReplaceParameters="true">PublicClass.cs</ProjectItem>
</TemplateContent>
</VSTemplate>
Я запустил Studio, попытался добавить новый элемент в мой проект, но мой шаблон нигде не был найден. Итак, я последовал совету этого вопроса стекопотока , который должен был вызвать ...
devenv.exe /installvstemplates
... из командной строки, но все, что было сделано, это заставило все шаблоны (включая встроенные) исчезнуть. После нескольких минут паники я, в конце концов, вернул их после выполнения команды несколько раз, но это явно не было ответом для меня.
Если вы видите что-то не так с моей процедурой здесь, не могли бы вы мне помочь?
Заранее спасибо.
EDIT:
Если я использую File / Export Template (как предложено Preet), шаблон действительно отображается в Моих шаблонах, но параметры не заменяются должным образом.
Если я вставлю новый «Публичный класс», вот что я получу:
using System;
using System.Collections.Generic;
$if$ (3.5 == 3.5)using System.Linq;
$endif$using System.Text;
namespace Pse.$projectname$
{
public class PublicClass1
{
}
}
Итак, только $projectname$
и $targetframeworkversion$
заменяются правильно. Он неправильно обрабатывает оператор $if$
или $projectname$
. (Я также пытался использовать $safeprojectname$
, но это не имело значения.)
Это, безусловно, один из тех случаев, когда попытка сделать мою жизнь немного более удобной имела совершенно противоположный эффект:)