Как создать шаблон элемента VisualStudio, который не предлагает нумерованные имена файлов по умолчанию - PullRequest
3 голосов
/ 02 июля 2019

Если я создаю шаблон элемента с именем по умолчанию foo.txt, Visual Studio по умолчанию предлагает имя foo1.txt в диалоговом окне добавления нового, даже если в папке нет foo.txt.

Обычно это нормально, но мне нужно создать шаблон элемента, который не предлагает суффикс "1" для имени файла по умолчанию, точно так же, как шаблон App.config ведет себя.

Я проверил файл App.vstemplate в установке VS2019, но я не вижу каких-либо специальных настроек, которые бы вызывали такое поведение.

Пример:

<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
  <TemplateData>
    <DefaultName>foo.txt</DefaultName>
    <Name>Foo.txt file</Name>
    <Description>A foo.txt.</Description>
    <ProjectType>CSharp</ProjectType>
  </TemplateData>
  <TemplateContent>
    <ProjectItem>foo.txt</ProjectItem>
  </TemplateContent>
</VSTemplate>

Показывается в диалоге добавления нового как: enter image description here

1 Ответ

1 голос
/ 04 июля 2019

Извините, но я боюсь, что ответ будет отрицательным.Я думаю, что это поведение разработано и не может контролироваться никаким элементом в .vstemplate.

Я воспроизвел эту проблему на моей стороне.И одна интересная вещь, которую я нашел, - это если мы изменим расширение файла на .manifest, и эта проблема исчезнет.

Например:

Если шаблон элемента, который я хочу создать, является чем-то вродеfoo.manifest вместо foo.txt, тогда, когда я добавлю этот элемент в новый проект, он не будет отображать суффикс 1.Вы можете легко подтвердить этот пункт, изменив весь ваш контент foo.txt на foo.manifest.

enter image description here

Я согласен с Уиллом, что они являются специальным корпусомнекоторые из шаблонов.И чтобы быть более конкретным, это поведение является особенным для расширений файлов созданного нами элемента.Я ничего не сделал по-другому при создании xxx.manifest Item, но это просто отличается от xxx.txt Item.Поэтому я думаю, что существует невидимое и неизвестное правило для управления этим поведением, и это поведение нельзя изменить или контролировать в пользовательском расширении.Я думаю, это было бы что-то вроде правила, разработанного командой разработчиков.

По моему мнению, текущий VS SDK не поддерживает управление поведением, позволяющим VS не отображать '1' suffix для элемента, файл которогорасширение .txt.И если вы действительно хотите эту функцию, перейдите Developer Community и поделитесь с вами своей замечательной идеей.На самом деле после вашего напоминания было бы лучше, если бы эта функция появилась, тогда мы можем действительно контролировать Default Name, поэтому, если вы решите опубликовать свою идею, поделитесь ссылкой в ​​своем вопросе, и заинтересованные участники будутпомогите проголосовать за него.

Надеюсь, это поможет, и если я что-то неправильно пойму, дайте мне знать:)

...