gpt4 book ai didi

visual-studio-2010 - 在 Visual Studio 中导出模板时如何添加相同解决方案项目引用?

转载 作者:行者123 更新时间:2023-12-02 17:43:38 25 4
gpt4 key购买 nike

我有一个包含多个项目的解决方案,我们将它们称为 ProjectA 和 ProjectB。我需要 ProjectA 来引用 ProjectB,但是当我“导出模板”时,我似乎无法保留引用。我想做的是让它在我创建新项目时为我创建引用,然后自动将其命名为我输入的内容。

最佳答案

这稍微超出了纯 Visual Studio 模板的范围。

Visual Studio 模板支持模板的替换参数,因此您可以执行以下操作:

  • 在您的 ProjectA.zip 内您会发现模板文件 ProjectA.csproj ,这是项目的模板
  • ProjectA.csproj你会发现一个<ItemGroup>包含<Reference>条目
  • 其中应该有类似 <Reference Include="ProjectB"> 的条目

当您从 ProjectB 模板创建项目时,其名称将由用户指定,因此您需要替换 ProjectB带有类似 $Foo$ 的替换参数.

这超出了纯模板的范围:How do you告诉 Visual Studio 替换 $Foo$ ?替代品会是什么?

此处您唯一的选择是使用自定义向导,该向导要么查找 ProjectB 类型的项目,要么向用户询问。

以下概述了如何使模板和自定义向导协调一致:

  • 创建 VSIX 包项目。
  • 请务必添加 [ProvideBindingPath]属性到你的包。这是注册自定义向导所必需的(否则您需要将其安装到 GAC,以便 VS 可以找到它)
  • 创建您的向导,它应该实现 Microsoft.VisualStudio.TemplateWizard.IWizard
  • 将您的模板添加到解决方案中,并将其作为 ProjectTemplate Assets 添加到软件包的 vsixmanifest 中

在模板的 .vstemplate 文件中,在 <TemplateContent> 下面添加以下代码片段 block :

<WizardExtension>
<Assembly>Your.Packages.Assembly</Assembly>
<FullClassName>Your.Wizard</FullClassName>
</WizardExtension>

这将在创建项目时打开您的向导。您可以在 RunStarted方法会弹出一个对话框,要求提供引用信息,或者您可以使用 automationObject参数(实际上是 EnvDTE.DTE 实例)来尝试查找 ProjectB 项目并在 replacementsDictionary 中提供其名称。 .

关于visual-studio-2010 - 在 Visual Studio 中导出模板时如何添加相同解决方案项目引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11352654/

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