gpt4 book ai didi

.net - 如何在多项目 sln 模板 Visual Studio 2015 中添加现有项目

转载 作者:行者123 更新时间:2023-12-03 16:53:04 29 4
gpt4 key购买 nike

我正在尝试制作一个包含多个项目的 sln 模板。
我可以做的是在模板中创建多个新项目,但我不知道如何在模板内的其他解决方案中添加对现有项目的引用。任何帮助表示赞赏。

编辑

作为另一位感兴趣的人,为了澄清起见,这个问题是在询问 Visual Studio 解决方案 模板以及他们对包含现有标准项目的解决方案进行模式化的能力(或缺乏能力)。

就我而言(我不确定 OP 在做什么)我正在创建大约 80 个左右的小型控制台应用程序,每个应用程序都引用了几个用于数据检索等的标准项目。我想要一种方法,我可以通过它选择 New>Project>$MY CUSTOM TEMPLATE$ 并创建一个包含控制台项目、测试项目的解决方案,并包含 5 个现有项目以及对其他内容的一些引用。

无法为现有项目保存项目模板。所要做的就是重新创建有问题的项目。如果原始项目发生更改(并且会更改),则更改将不会转移到副本中。

最佳答案

根据我的研究和测试,我不得不说这个 当前无法使用 (创建包含指向现有项目的“链接”的解决方案模板,而不是创建现有项目的副本)。

我会被证明是错误的,但我已经阅读了相当多的 Visual Studio 模板的 MSDN 文档,以及一些试图找到实现它的方法的 3rd 方“教程”/博客。

** 更新 **

I've posted a new suggestion 在 Visual Studio 反馈论坛中,并且可以使用任何对改进 Visual Studio 中模板创建感兴趣的人的支持。

以下是我使用的一些引用资料:

  • MSDN 文章 - "How to: Create Multi-Project Templates "
  • 来自 jayway.com 的博客文章(2015 年 3 月 13 日)-“Visual Studio: How to create a solution template with multiple projects”(这是我的主要来源,因为它包含非常详细的说明和屏幕截图,以帮助解释 MSDN 文章中概述的相同步骤,以及一些其他“提示”)

  • 我能找到的最接近的东西是另一篇关于如何将预编译程序集添加到模板的 MSDN 文章 - “ Assembly Element (Visual Studio Templates)”。您也许可以使用它来指向 \Release (或 \Debug )其他项目的文件夹,但在某些情况下,这可能会在重新编译其他程序集后导致一些意外行为。

    还有一些关于可能为您的项目制作 NuGet 包的讨论,然后在模板中引用它,但这仍然不是我想要的。我没有对此解决方案进行过多研究,但如果您对此方法感兴趣,请访问 Microsoft Docs 文章的链接 -“ NuGet Packages in Visual Studio templates

    在这一点上,我最好的建议是在 Visual Studio feedback forums 上提出建议或对建议进行投票。 .我只能在那里找到关于此主题的一个建议 ( Support Solution templates that specify existing projects),但它已被管理员关闭,因为它在前两个月(2016 年 11 月 - 2017 年 1 月)内没有获得足够的选票。

    如果您发布新建议,我建议您将其推广并与您认为可能感兴趣的任何人分享,这样您就可以开始收集选票并防止其被关闭。

    仅供引用并本着分享的精神,这是我一直在使用的“测试”模板。也许其他人可以找到使其工作的方法:

    示例 VS 模板

    (不会产生预期的结果)
    <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 而不是 ProjectItem (即使 MSDN 文档只列出了后两个作为可能的值)。
  • <TemplateContent> 元素,包装 <ProjectCollection> <ProjectTemplateLink> 周围的元素标签(也可能是 <Project> )元素。

  • 我已经尝试了此 .vstemplate 的许多变体和迭代但是,当我尝试在 Visual Studio 中创建新项目时,我得到的只是一个项目“解决方案”( $projectname$.UI )。我尝试将现有项目的路径/文件名向下移动到标记数据(而不是 File 属性),到 <ProjectItem> <Project>的子元素元素,以及我试图让它工作的各种其他小“调整”。

    关于.net - 如何在多项目 sln 模板 Visual Studio 2015 中添加现有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40537834/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com