多项目解决方案模板

5

我正在创建一个多项目解决方案模板,其中包括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文件夹下的四个测试项目没有被创建。我尝试将它们替换为Tests文件夹下的类库,在vstemplate中这样做是可以正常工作的,但只有使用ProjectTypeGuid {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}的单元测试项目不能在Tests文件夹下被创建。

你能否在某个地方发布你的extension.vsixmanifest和.vstemplate文件的内容?否则我们这里没有任何东西可以使用。 - Jason Malinowski
嗨@JasonMalinowski,我已更新我的问题,并包含了一个Root Vstemplate内容,其中包含要创建的项目链接集合。 - Soni Qureshi
我曾经遇到过同样的问题,你是如何创建模板的?创建模板有两种方法。 - Javier Hertfelder
2个回答

0

尝试运行devenv /setup,以便Visual Studio识别您已经放置了一个新的模板。

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

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

因为VS本身会从这里获取模板,您不必显式地运行devenv /setup。


0

我曾经遇到过同样的问题,

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

  1. 文件 --> 导出模板... 如果您使用此方法,则无法在带有VSIX包的VS2012中使用。
  2. 直接使用C#项目模板(位于“可扩展性”下)创建您的模板。

第二种方式对我有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接