【问题标题】:How to create a VisualStudio item template that does not offer numbered file names by default如何创建默认不提供编号文件名的 VisualStudio 项模板
【发布时间】:2019-07-02 16:41:01
【问题描述】:

如果我使用默认名称 foo.txt 创建项目模板,Visual Studio 默认在添加新对话框中提供名称 foo1.txt,即使文件夹中没有 foo.txt

这通常没问题,但我需要创建一个项目模板,它默认为文件名提供“1”后缀,就像App.config 模板的行为一样。

我已经检查了 VS2019 安装中的 App.vstemplate 文件,但是我没有看到任何会导致这种行为的特殊设置。

示例:

<?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>

在添加新对话框中显示为:

【问题讨论】:

  • 我以前从未见过这种行为。您能否添加一个重现此行为的项目模板的最小示例?
  • 我已经添加了一个示例,但基本上几乎所有的项目模板都是这样工作的,除了 App.config 和 App.manifest 可能还有一些其他的。
  • 嗯,你是对的。您认为它们可能是某些模板的特殊外壳吗?如果人们没有意识到最后添加的整数会使文件无用,那么 app/web.config 将无法工作。我没有看到你在这里做的任何不同的事情应该有所作为。文档看起来也不乐观。不幸的是,我会考虑与 MS 建立联系。
  • 是的,这似乎是某些特定名称/扩展名的内置行为。我会开一个案子。

标签: visual-studio vsx visual-studio-sdk


【解决方案1】:

抱歉,恐怕答案是否定的。我认为这 行为是设计使然,不能由 .vs 模板。

我已经在我身边重现了这个问题。我发现的一件有趣的事情是,如果我们将文件扩展名更改为 .manifest,这个问题就会消失。

例如:

如果我要创建的项目模板类似于foo.manifest 而不是foo.txt,那么当我在新项目中添加此项目时,它不会显示1 后缀。您可以通过将所有foo.txt 内容更改为foo.manifest 来轻松确认这一点。

我同意 Will 的观点,他们对某些模板进行了特殊封装。更具体地说,这种行为对于我们创建的 Item 的文件扩展名是特殊的。创建xxx.manifest Item 时我没有做任何不同的事情,但它与xxx.txt Item 不同。所以我认为有一个不可见和未知的规则来控制这种行为,并且这种行为可能不会在自定义扩展中改变或控制。我相信这就像产品团队设计的规则。

在我看来,当前的 VS SDK 不支持控制行为以让 VS 不会为文件扩展名为 .txt 的项目显示 '1' suffix。如果您确实需要此功能,请前往Developer Community 在那里分享您的好主意。其实经过您的提醒,如果有这个功能会更好,然后我们可以真正控制Default Name,所以如果您决定发表您的想法,请将您的问题中的链接分享给感兴趣的成员将有助于投票。

希望对您有所帮助,如果我有任何误解,请随时告诉我:)

【讨论】:

  • 谢谢。很清楚,这就是我的怀疑。在我的情况下,这很重要,因为我想使用模板为工具(SpecFlow)添加配置文件,该工具需要按照约定(specflow.json)指定特定的配置文件名。我将向开发社区发布请求并在此处链接。
  • 很高兴知道它有帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-04
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多