如果我创建默认名称为foo.txt
的项目模板,则即使文件夹中没有foo1.txt
,Visual Studio默认也会在添加新对话框中提供名称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>
答案 0 :(得分:1)
对不起,但我担心答案会否定的。我认为这 行为是设计使然,不能由 .vstemplate。
我已经在我这边复制了这个问题。我发现的一件有趣的事情是,如果我们将文件扩展名更改为.manifest
,而这个问题就消失了。
例如:
如果我要创建的Item模板类似于foo.manifest
而不是foo.txt
,那么当我在新项目中添加此项目时,它不会显示1
后缀。您可以通过将所有foo.txt
的内容更改为foo.manifest
来轻松确认这一点。
我同意Will的观点,他们特别强调了某些模板。更具体地说,此行为对于我们创建的Item的文件扩展名是特殊的。创建xxx.manifest Item
时,我并没有做任何不同的事情,但这与xxx.txt Item
有所不同。因此,我认为有一个看不见的未知规则来控制此行为,并且在自定义扩展中不能更改或控制此行为。我相信这就像是产品团队设计的规则。
我认为,当前的VS SDK不支持控制行为,以使VS不会为文件扩展名为'1' suffix
的项目显示.txt
。如果您确实需要此功能,请转到Developer Community在此处分享您的好主意。实际上,在您提醒之后,最好先提供此功能,然后我们可以真的控制Default Name
,因此,如果您决定发表想法,则可以在问题中分享链接并与感兴趣的成员分享它将有助于投票。
希望有帮助,如果我误解了任何内容,请随时告诉我:)