多项目模板参考被破坏

时间:2015-10-09 11:52:19

标签: asp.net visual-studio visual-studio-2013 asp.net-web-api

我正在构建多项目模板。其中一个子项目是ASP.NET Web应用程序。当我将它作为单个项目模板导出时,一切都很好,但是当包含在多项目模板中时,几乎一半的引用都被破坏了(Antlr3.Runtime,EntitiFramework,Microsoft.Owin等等)

多项目模板如下所示:

<VSTemplate Version="3.0.0" Type="ProjectGroup" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
  <TemplateData>
    <Name>Web Api Solution Template</Name>
    <Description>Template commonly used in projects</Description>
    <ProjectType>CSharp</ProjectType>
    <ProjectSubType>
    </ProjectSubType>
    <SortOrder>1000</SortOrder>
    <CreateNewFolder>true</CreateNewFolder>
    <DefaultName>Web_API</DefaultName>
    <ProvideDefaultName>true</ProvideDefaultName>
    <LocationField>Enabled</LocationField>
    <EnableLocationBrowseButton>true</EnableLocationBrowseButton>
    <Icon>IconSolution.png</Icon>
  </TemplateData>
  <TemplateContent>
    <ProjectCollection>
      <ProjectTemplateLink ProjectName="Api">
        Api\MyTemplate.vstemplate
      </ProjectTemplateLink>
      <ProjectTemplateLink ProjectName="BLL">
        BLL\MyTemplate.vstemplate
      </ProjectTemplateLink>
      <ProjectTemplateLink ProjectName="DBModel">
        DBModel\MyTemplate.vstemplate
      </ProjectTemplateLink>
      <ProjectTemplateLink CopyParameters="true" ProjectName="Web">
        Web\MyTemplate.vstemplate
      </ProjectTemplateLink>
    </ProjectCollection>
  </TemplateContent>
</VSTemplate>

为什么会这样?

2 个答案:

答案 0 :(得分:2)

使用模板向导扩展解决了这个问题。基本上我所做的是从子项目中删除所有预先安装的nuget包,并使用向导扩展添加它们,以便project.vstemplate的结尾如下所示:(在这种情况下为api)

<https://stackoverflow.com/questions/26103648/boostthis-threadinterruption-point-doesnt-throw-boostthread-interrupted>

据我记忆,您可以复制粘贴装配部件,因为它将来不会发生变化。

答案 1 :(得分:0)

使用Sidewaffle。修改项目时,无需更新.vstemplates,nugets等任何内容。只需重建.vsix项目(发布),然后双击发布文件夹中的.vsix