如何使用$ safeprojectname $在Visual Studio项目模板中将字符串文字附加到项目名称中?

时间:2018-09-27 16:22:26

标签: c# visual-studio visual-studio-templates

我正在尝试为常用的项目分层方案创建模板,但无法让我的测试项目具有正确的名称。

我的项目模板包含一个名为$safeprojectname$.Application的项目。我希望使用此模板创建的任何项目都将其所需的名称注入上述名称。

EG:新建项目>名称为MyProject,然后应创建一个名称为MyProject.Application的项目。

目标是最终创建一个多项目模板来设置常见的分层方案。

这是我到目前为止所做的:

  • 我的实际csproj文件名为$safeprojectname$.Application
  • 该项目中某些类的命名空间为namespace $safeprojectname$.Application
  • 导出模板时,它的默认名称为$safeprojectname$.Application,所以我将默认名称重命名为MyProject
  • 当我从模板创建一个新项目时,我给它起一个TestProject之类的名字,但最终解决方案包含一个名为TestProject而不是TestProject.Application的项目

这是我的vstemplate文件

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
 <TemplateData>
 <Name>$safeprojectname$.Application</Name>
 <Description>&lt;No description available&gt;</Description>
 <ProjectType>CSharp</ProjectType>
 <ProjectSubType>
 </ProjectSubType>
 <SortOrder>1000</SortOrder>
 <CreateNewFolder>true</CreateNewFolder>
 <DefaultName>3</DefaultName>
 <ProvideDefaultName>true</ProvideDefaultName>
 <LocationField>Enabled</LocationField>
 <EnableLocationBrowseButton>true</EnableLocationBrowseButton>
 <Icon>__TemplateIcon.ico</Icon>
</TemplateData>
<TemplateContent>
<Project TargetFileName="$safeprojectname$.Application.csproj" File="$safeprojectname$.Application.csproj" ReplaceParameters="true">
  <ProjectItem ReplaceParameters="true" TargetFileName="Bootstrapper.cs">Bootstrapper.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>
  </Folder>
</Project>
</TemplateContent>
</VSTemplate>  

根据docs,要在其上插入参数的属性应包含ReplaceParameters="true"。如您从我的模板文件中看到的,我确实具有此设置。文档唯一提到的是名称空间和模板项都可以更改,但是他们没有提到项目名称可以自己更改。

我如何设置此模板,以便编码人员为其项目选择的名称在最终项目中应附加字符串文字?

0 个答案:

没有答案