![](/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.