visual-studio - 如何创建默认不提供编号文件名的 VisualStudio 项模板
问题描述
如果我使用默认名称创建项目模板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>
解决方案
对不起,但我担心答案是否定的。我认为这种行为是设计使然,不能由 .vstemplate 中的任何元素控制。
我已经在我身边重现了这个问题。我发现的一件有趣的事情是,如果我们将文件扩展名更改为.manifest
,这个问题就会消失。
例如:
如果我要创建的项目模板类似于 afoo.manifest
而不是foo.txt
,那么当我在新项目中添加此项目时,它不会显示1
后缀。您可以通过将所有foo.txt
内容更改为 来轻松确认这一点foo.manifest
。
我同意 Will 的观点,它们是一些模板的特殊外壳。更具体地说,这种行为对于我们创建的 Item 的文件扩展名是特殊的。我在创建时没有做任何不同的事情xxx.manifest Item
,但它只是与xxx.txt Item
. 所以我认为有一个不可见和未知的规则来控制这种行为,并且这种行为可能不会在自定义扩展中改变或控制。我相信这就像产品团队设计的规则。
在我看来,当前的 VS SDK 不支持控制让 VS 不会显示'1' suffix
文件扩展名为.txt
. 如果您确实想要此功能,请前往开发者社区分享您的好主意。其实经过您的提醒,如果有这个功能就更好了,这样我们就可以真正控制了Default Name
,所以如果您决定发布您的想法,请在您的问题中分享链接,感兴趣的成员将帮助投票。
希望对您有所帮助,如果我有任何误解,请随时告诉我:)
推荐阅读
- python - 命令行生成的文件不存在
- c# - 使用 odbc 驱动程序进行慢速查询
- sql - LockAmountOnline_Active:聚合可能不会出现在 WHERE 子句中,除非它在子查询中
- c# - 无法通过 Google Docs API 删除表中的行
- ibm-watson - 我无法完成 watson studio 设置,我不断收到错误消息“无法读取属性 'language_info' 未定义
- php - 在外部 for 循环的第一次迭代之后,内部 for 循环不起作用
- mysql - Mysql 长进程列表和自动重启
- azure-devops - Azure Dev Ops:撤消其他用户的签出
- reactjs - 如何显示道具并在视图上从组件渲染到另一个?
- android - Android dataBinding不刷新ui