多项目解决方案模板

时间:2013-03-10 21:28:08

标签: visual-studio-2012 visual-studio-extensions vsix project-template multi-project

我正在创建具有Web应用程序,桌面,少量类库和单元测试项目的多项目解决方案模板。

我构建了基本容器并将其打包为VSIX容器。 当我安装VSIX容器时,我可以在以下物理路径中使用我的解决方案模板的.zip文件

%AppData%\ Local \ Microsoft \ VisualStudio \ 11.0 \ Extensions \ tbxs0hui.w2e \ ProjectTemplates \ CSharp \ 1033 \ myprojecttemplate.zip,所以一切都很好。

但是当我启动Visual Studio 2012时,我看不到新项目下列出的我的解决方案模板 - > Visual C#。

当我出错的时候?有什么建议吗?

这是Multisolution RootTemplate.vstemplate内容:

<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="ProjectGroup" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:sdk="http://schemas.microsoft.com/developer/vstemplate-sdkextension/2010">
<TemplateData>
<Name>MultiProject</Name>
<Description>MultiProject</Description>
<Icon>MultiProject.ico</Icon>
<ProjectType>CSharp</ProjectType>
<RequiredFrameworkVersion>2.0</RequiredFrameworkVersion>
<SortOrder>1000</SortOrder>
<TemplateID>bbd7217a-8572-4edc-80ce-488cb9a347df</TemplateID>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>MultiProject</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
</TemplateData>
<TemplateContent>    
<ProjectCollection>
<SolutionFolder Name="FolderName1">
  <SolutionFolder Name="FolderName2">
    <ProjectTemplateLink ProjectName="xxxxx">Children\Application1\Application1.vstemplate</ProjectTemplateLink>
    <ProjectTemplateLink ProjectName="yyyy">Children\Application1\Application2.vstemplate</ProjectTemplateLink>        
  </SolutionFolder>
  <SolutionFolder Name="Folder3">
    <ProjectTemplateLink ProjectName="zzzzzz">Children\Application3\Application3.vstemplate</ProjectTemplateLink>
  </SolutionFolder>
  <SolutionFolder Name="Web">
    <ProjectTemplateLink ProjectName="Web">Children\Web\Web.vstemplate</ProjectTemplateLink>
  </SolutionFolder>
</SolutionFolder>    
<SolutionFolder Name="Tests">      
    <ProjectTemplateLink ProjectName="xxxxxTest">Children\ApplicationxxxxUnitTest\ApplicationxxxxUnitTest.vstemplate</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="yyyyyTest">Children\ApplicationyyyyUnitTest\ApplicationyyyyUnitTest.vstemplate</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="zzzzzTest">Children\ApplicationzzzzUnitTest\ApplicationzzzzUnitTest.vstemplate</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="WebTest">Children\ApplicationWebUnitTest\ApplicationWebUnitTest.vstemplate</ProjectTemplateLink>
</SolutionFolder>   
</ProjectCollection>
</TemplateContent>
</VSTemplate>

安装VSIX之后,我可以在VS2012中看到一个名为“MultiProject”的新项目。当我创建一个新项目时,四个测试项目没有在Tests文件夹下创建。我尝试用测试文件夹下的类库替换它们在vstemplate中,它工作正常,只有ProjectTypeGuid {3AC096D0-A1C2-E12C-1390-A8335801FDAB}; {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}的单元测试项目未在测试文件夹下创建。

2 个答案:

答案 0 :(得分:0)

尝试运行devenv /setup,以便Visual Studio识别您已在其中放置了新模板。

无论如何,对于自定义模板,我建议您将.zip文件放在

  

%DOCUMENTS%\ Visual Studio 2012 \ Templates \ ProjectTemplates \ Visual C#

因为VS本身从这里获取模板,所以你不必明确地运行devenv / setup。

答案 1 :(得分:0)

我遇到了同样的问题,

您是如何创建模板的? 有两种创建模板的方法:

  1. 文件 - &gt;导出模板..如果你这样做,在VS2012中使用VSIX软件包
  2. 使用C#项目模板(在可扩展性下)
  3. 直接创建模板

    第二种方式对我有用。