2

我在 VS 2010 中创建了一个多项目模板,创建的文件夹结构为:

Service1
MyService.Service1.CommunicationLayer
-->MyService.Service1.CommunicationLayer.csproj
MyService.Service1.DataAccessLayer
-->MyService.Service1.DataAccessLayer.csproj
MyService.Service1.ServiceLayer
-->MyService.Service1.ServiceLayer.csproj

但我需要如下结构: Service1
Communication
-->MyService.Service1.CommunicationLayer.csproj
DataAccess
-->MyService.Service1.DataAccessLayer.csproj
Services
-->MyService.Service1.ServiceLayer.csproj

另外,我需要将我的解决方案文件夹名称设置为Service1,这将是项目用户提供的名称。

这是我正在使用的 .vstemplate 文件:

`<!--Outer .vstemplate file -->
<VSTemplate Version="2.0.0" Type="ProjectGroup"
    xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
  <TemplateData>
    <Name>DataAccessService</Name>
    <Description>Data Access Service Template</Description>
    <ProjectType>CSharp</ProjectType>
    <Icon>__TemplateIcon.ico</Icon>
    <CreateNewFolder>true</CreateNewFolder>
    <ProvideDefaultName >true</ProvideDefaultName>
    <DefaultName>DALService</DefaultName>
  </TemplateData>
  <TemplateContent>
    <ProjectCollection>
        <ProjectTemplateLink ProjectName="MyService.$safeprojectname$.CommunicationLayer">Communication\Communication.vstemplate</ProjectTemplateLink>
        <ProjectTemplateLink ProjectName="MyService.$safeprojectname$.DataAccessLayer">DataAccess\DataAccess.vstemplate</ProjectTemplateLink>
        <ProjectTemplateLink ProjectName="MyService.$safeprojectname$.ServiceLayer">Services\Services.vstemplate</ProjectTemplateLink>
    </ProjectCollection>
  </TemplateContent>
</VSTemplate>`

任何帮助,将不胜感激。

4

1 回答 1

1

好的。所以这是我找到的解决方案:

我使用 TemplateWizard 来自定义我的文件夹结构。

  1. 使用默认项目名称和包含文件夹创建项目。
  2. 使用 TemplateWizard 创建解决方案文件夹。
  3. 从解决方案中删除项目。
  4. 重命名包含文件夹。
  5. 将项目添加到我在步骤 2 中创建的 SolutionFolder。

希望这可以帮助有类似问题的人。

于 2012-06-25T19:35:09.067 回答