Что не так с моим шаблоном Visual Studio 2008? - PullRequest
0 голосов
/ 03 августа 2009

Я пытаюсь создать свой собственный шаблон класса для Visual Studio, который называется "Public Class".

Я следовал официальным инструкциям MSDN о том, как вручную создать шаблон элемента в значительной степени к письму, но мне не повезло, что шаблон появился в разделе "Мои шаблоны" диалоговое окно «Добавить новый элемент».

Я разместил PublicClass.zip в следующем каталоге Windows XP:

C: \ Documents and Settings \ Мое имя пользователя \ Мои документы \ Visual Studio 2008 \ Templates \ ItemTemplates \ Visual C #.

Public Class.zip содержит следующие файлы:

  1. PublicClass.cs
  2. PublicClass.ico
  3. 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$, но это не имело значения.)

Это, безусловно, один из тех случаев, когда попытка сделать мою жизнь немного более удобной имела совершенно противоположный эффект:)

Ответы [ 3 ]

3 голосов
/ 04 января 2011

Если вы хотите, чтобы он работал в Visual Studio 2008, вам нужно изменить <VSTemplate Version="1.0.0"> на <VSTemplate Version="3.0.0"> в вашем файле .vstemplate.Затем поместите файл .zip в то место, которое вы указали как расположение шаблонов элементов пользователя .

2 голосов
/ 15 октября 2009

У меня была эта проблема:)

И я думаю, что мне удалось ее решить. Я делал что-то очень похожее, и я действительно хотел иметь стандартный шаблон с заголовками для нашей системы SVN. В итоге я извлек существующий файл Class.zip в Foo: \ Program. Файлы \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Code \ 1033 и последующее редактирование. В итоге я получил

// $Id$
// $Author$
namespace $rootnamespace$
{
    using System;
    using System.Collections.Generic;
$if$ ($targetframeworkversion$ == 3.5)  using System.Linq;
$endif$    using System.Text;

    public class $safeitemrootname$
    {
    }
}

Интервал для оператора $ if $, по-видимому, имел значение. Если бы у меня были вкладки или интервалы перед ними, они не оценивали бы должным образом или, скорее, они оценивали, как вы видите, но были просто напечатаны в моем коде.

Что касается ваших шаблонов, исчезающих при запуске / installvstemplates, то, что происходит, вы можете заметить, что cmd занимает много времени для запуска, то, что он делает на самом деле, это удаление Foo: \ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ ItemTemplatesCache и затем перестраиваем эту папку, извлекая zip-файлы в исходные местоположения, как указано выше. Чтобы эта команда работала, лучше всего отключить Visual Studio, пока вы ее запускаете, и вам следует подождать, пока команда не закончит, чтобы перезапустить ее. (совет, который я использовал для мониторинга папки и наблюдения за ее сборкой).

Лично, несмотря на то, что это гибкая система, Microsoft действительно могла бы упростить это для пользователя, в конце концов, R # имеет такую ​​же простую функцию щелчка правой кнопкой мыши, если у вас есть R #, это самый простой способ реализовать шаблоны вне мс система.

0 голосов
/ 03 августа 2009

У меня были проблемы с созданным вручную ZIP-файлом. Если бы я не выполнил экспорт существующего шаблона и не изменил его, я бы никогда не получил шаблон для отображения. Это инструкции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...