![](/img/trans.png)
[英]How to create a Visual Studio 2015 project template for NET Core?
[英]How to add existing project in multi project sln template Visual Studio 2015
我正在尝试制作一个包含多个项目的sln模板。 我可以做的是在一个模板中创建多个新项目,但是我不知道如何在模板中的其他解决方案中添加对现有项目的引用。 任何帮助表示赞赏。
作为另一个感兴趣的人,为澄清起见,此问题询问的是Visual Studio解决方案模板及其对包含现有标准项目的解决方案进行模式化的能力(或缺乏)。
就我而言(我不确定OP在做什么),我正在创建大约80个左右的小型控制台应用程序,每个应用程序都引用多个标准项目进行数据检索等等。 我想要一种方法,可以选择“新建”>“项目”>“ $ MY CUSTOM TEMPLATE $”,它可以创建一个包含控制台项目,测试项目的解决方案,并包括5个现有项目以及对其他内容的一些引用。
无法为现有项目保存项目模板。 所有要做的就是重新创建有问题的项目。 如果原始项目被更改(并且将会更改),则更改将不会保留到副本中。
首先,将所有必要的项目添加到您的解决方案中(解决方案上的RC->添加新的/现有的项目)。
之后,您需要转到文件->导出模板。 然后继续执行弹出窗口,您应该一切顺利。
根据我的研究和测试,我不得不说这目前是不可能的 ( 创建一个包含与现有项目的“链接”的解决方案模板,而不是创建现有项目的副本 )。
我很乐意被证明是错误的这一点,但我已经通过相当多的MSDN文档的Visual Studio模板,以及一些第三方“教程”的消失/博客试图找到一种方式来做到这一点。
我在Visual Studio反馈论坛上发布了一个新建议 ,可以使用任何有兴趣改进Visual Studio中模板创建的人的支持。
这只是我使用的一些参考:
我能够找到的最接近的东西几乎能够使它工作,这是MSDN上另一篇有关如何向模板添加预编译的程序集的文章-“ 程序集元素(Visual Studio模板) ”。 您可能可以使用它指向其他项目的\\Release
(或\\Debug
)文件夹,但是在某些情况下,重新编译另一个程序集后可能会导致某些意外行为。
也有关于可能使你的项目的NuGet包,然后引用该模板中的一些讨论,但仍然不正是我一直在寻找。 我没有对该解决方案进行过多研究,但是,如果您对此方法感兴趣,请访问Microsoft Docs文章的链接-“ Visual Studio模板中的NuGet包 ”
在这一点上,我最好的建议是在Visual Studio反馈论坛上对建议进行表决或投票。 我只能在此处找到有关此主题的建议( 指定现有项目的支持解决方案模板 ),但是由于前两个月(2016年11月至2017年1月)未获得足够的选票,管理员已将其关闭。 。
如果您发布新的建议,我建议您推广并与您认为有兴趣的任何人分享,以便您可以开始投票并防止其被关闭。
仅供参考,本着共享的精神,这是我一直在使用的“测试”模板。 也许其他人可以找到一种使它起作用的方法:
<VSTemplate Version="3.0.0" Type="ProjectGroup" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>New Application Template</Name>
<Description>Template for creating a new application</Description>
<ProjectType>VisualBasic</ProjectType>
<ProjectSubType></ProjectSubType>
<SortOrder>1000</SortOrder>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>NewApplication</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<Icon>SampleIcon.png</Icon>
</TemplateData>
<TemplateContent>
<ProjectCollection>
<Project File="C:\Development\Libraries\MyLibrary.vbproj">
</Project>
<ProjectTemplateLink ProjectName="$projectname$.UI">
UI\MyUI.vstemplate
</ProjectTemplateLink>
</ProjectCollection>
</TemplateContent>
</VSTemplate>
在我的研究中,看来制作解决方案模板(而不是项目模板)有几个关键:
<VSTemplate>
元素中,将Type
属性设置为ProjectGroup
而不是Project
或Item
(即使MSDN文档仅将后两个列为可能的值)。 <TemplateContent>
元素下,将<ProjectCollection>
元素标签包装在<ProjectCollection>
<ProjectTemplateLink>
(可能还有<Project>
)元素周围。 我已经尝试过此.vstemplate
文件的多种变体和迭代,但是,当我尝试在Visual Studio中创建新项目时,得到的只是一个项目“解决方案”( $ projectname $ .UI )。 我尝试将现有项目的路径/文件名向下移动到标签数据(而不是File
属性)中,移到<Project>
元素的<ProjectItem>
子元素中,并进行各种其他的小“调整”在我尝试使其正常工作的过程中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.