我正在构建多项目模板。其中一个子项目是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>
为什么会这样?
答案 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