【发布时间】:2021-10-30 05:37:21
【问题描述】:
我正在尝试制作一个简单的概念证明类型的 Visual Studio 模板,但我似乎无法让内置变量按应有的方式工作。我正在尝试遵循https://docs.microsoft.com/en-us/visualstudio/ide/template-parameters?view=vs-2019 此处的文档,但它不起作用。
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
<TemplateData>
<Name>Readers</Name>
<Description><No description available></Description>
<ProjectType>CSharp</ProjectType>
<ProjectSubType>
</ProjectSubType>
<SortOrder>1000</SortOrder>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>Readers</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<Icon>__TemplateIcon.ico</Icon>
</TemplateData>
<TemplateContent>
<Project TargetFileName="Readers.csproj" File="Readers.csproj" ReplaceParameters="true">
<ProjectItem ReplaceParameters="true" TargetFileName="App.config">App.config</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="DBAccess.cs">DBAccess.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$.cs">MainReader.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="packages.config">packages.config</ProjectItem>
<Folder Name="Properties" TargetFolderName="Properties">
<ProjectItem ReplaceParameters="true" TargetFileName="AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Resources.resx">Resources.resx</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Resources.Designer.cs">Resources.Designer.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Settings.settings">Settings.settings</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Settings.Designer.cs">Settings.Designer.cs</ProjectItem>
</Folder>
<ProjectItem ReplaceParameters="true" TargetFileName="ReaderBase.cs">ReaderBase.cs</ProjectItem>
</Project>
</TemplateContent>
</VSTemplate>
这就是我按照那个例子想出的。这基本上与我在 Visual Studio 中执行 Project -> Export Template 时生成的模板文件相同。
<ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$.cs">MainReader.cs</ProjectItem>
当我使用此模板创建新文件时,它应该将 MainReader.cs 文件重命名为项目名称。它不会,每当我使用此模板创建一个新项目时,该文件都会保留名称 MainReader.cs。我尝试将 ext_ 扩展名添加到名称中,我尝试使用括号内的变量而不是外部和两者。必须有其他东西我错过了,或者这可能不再是一个东西了。我用来获取模板的过程是使用导出模板向导,提取该 zip 文件,更改 .vstemplate 文件,将整个内容放回 zip 文件中,然后最后替换导出模板中的 zip 文件视觉工作室的文件夹。我可能需要在其他地方放置修改后的 zip 文件,但我不确定。
【问题讨论】:
标签: visual-studio visual-studio-templates