创建一个Visual Studio模板以在生成的输出中具有自定义物理文件夹

时间:2019-03-01 10:08:56

标签: visual-studio visual-studio-2017 vs-extensibility

要创建多项目模板,我点击了以下链接:

https://docs.microsoft.com/en-us/visualstudio/ide/how-to-create-multi-project-templates?view=vs-2017

但是我想要为我的输出项目提供更多的自定义物理目录结构。

所需的输出项目结构为:

Biz (folder) > Business.Profiles (folder) > project
Web (project, is on the root)

In other form, it should be seen as : 
Biz\Business.Profiles
Web

因此,在该示例中,所有问题都在于获取文件夹: Biz

我们如何能够创建“ Biz”文件夹? 对我来说更好,如果可能的话不要尝试:

"$solutionname$".Biz (folder) > Business.Profiles (folder)> project

因此,尝试通过在SolutionFolder节点下添加以下代码来编辑主.vstemplate:

<Folder Name=”Biz”>
  <TemplateContent>
    <ProjectCollection>
       <SolutionFolder Name="Biz">
          <Folder Name=”Biz”
             <ProjectTemplateLink ProjectName="Business.Profiles">
                 Biz\Business.Profiles\MyTemplate.vstemplate
             </ProjectTemplateLink>
         </SolutionFolder>
…

结果是“ Business.Profiles”从输出中完全消失了! 之后,我尝试编辑此文件:

Biz\Business.Profiles\MyTemplate.vstemplate

通过将标签放置在2个不同的位置进行不同的尝试:

首先,我为该项目添加了一个容器,结果与上述尝试完全相同,只是至少出现了“ Biz”文件夹。

  <TemplateContent>  
    <Folder Name="Biz">     
      <Project TargetFileName="Business.Profiles.csproj" File="Business.Profiles.csproj" ReplaceParameters="true">
        <ProjectItem ReplaceParameters="true" TargetFileName="ContactInfo.cs">ContactInfo.cs</ProjectItem>
...

其次,我将<folder>放在了Project标签中, 结果对我来说是预期的,但不理想,该文件夹是在项目文件夹中创建的。


需要特别注意的是,不知道它们是否相关,但是我在上一节的代码中也有这两行:

<CreateNewFolder>true</CreateNewFolder>
<CreateInPlace>true</CreateInPlace>

0 个答案:

没有答案