具有包含文件的解决方案文件夹的多项目Visual Studio模板



我正在Visual Studio中创建一个多项目模板,我已经很好地完成了基础工作并运行了。

MySolution.vstemplate:

<VSTemplate Version="2.0.0" Type="ProjectGroup" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
   <TemplateData>
      <Name>My standard .NET solution</Name>
      <Description>My standard .NET solution</Description>
      <Icon>myicon.ico</Icon>
      <ProjectType>CSharp</ProjectType>
      <DefaultName>Customer.Project</DefaultName>
      <SortOrder>5000</SortOrder>
  </TemplateData>
  <TemplateContent>
     <ProjectCollection>
        <SolutionFolder Name=".nuget">
            .... here I'd like to link to a few on-disk files to be included ......
        </SolutionFolder> 
        <SolutionFolder Name="Batchjobs">
           <ProjectTemplateLink ProjectName="$safeprojectname$.Batchjob">My batchjobMyBatchjob.vstemplate</ProjectTemplateLink>
        </SolutionFolder> 
        <SolutionFolder Name="build">
            .... here I'd like to link to a few on-disk files to be included ......
        </SolutionFolder> 
        <SolutionFolder Name="Testing">
             <ProjectTemplateLink ProjectName="$safeprojectname$.IntegrationTests">MyIntegrationTestsMyIntegrationTests.vstemplate</ProjectTemplateLink>
             <ProjectTemplateLink ProjectName="$safeprojectname$.UnitTests">MyUnitTestsMyUnitTests.vstemplate</ProjectTemplateLink>
        </SolutionFolder> 
     </ProjectCollection>
  </TemplateContent>
</VSTemplate>

然而:我试图用几个包含的项目创建的解决方案实际上也有几个解决方案文件夹,它们对应于磁盘上的目录,并且包含一些文件;一个是NuGet的东西,另一个是我们构建过程的config和PowerShell脚本,等等。

我在网上找不到任何能向我展示如何将解决方案文件夹及其文件项包含到我的模板输出解决方案中的内容。我可以很容易地创建解决方案文件夹,但在模板过程中似乎无法向其中添加任何文件。。。。。

还是我错过了一些非常简单的东西?有什么想法吗?

VSProjectTemplate无法执行此操作。您只需在项目中添加包含项目和文件的SolutionFolders即可。在我的案例中,我确实解决了在解决方案中创建另一个项目以将解决方案文件夹的文件分组的问题,然后修改我的解决方案以引用新项目上的文件而不是解决方案文件夹中的文件,然后导出完整的解决方案。

Solution Folder 1
    Project 1.csproj
        File 1.cs
    Project 2.csproj
        File 2.cs
Solution Folder 2
    File 3.cs
    Project 3.csproj
        File 4.cs
    Project 4.csproj
        File 5.cs

我在"解决方案文件夹2"中创建了一个名为"项目5"的新项目,然后访问了上面的文件。

Solution Folder 2  
    Project 3.csproj
        File 4.cs
    Project 4.csproj
        File 5.cs
    Project 5.csproj
        File 3.cs

该模板创建了解决方案的所有解决方案文件夹、项目和文件。

最新更新