如何将解决方案文件夹添加到VS项目模板中?

5

我正在尝试在Visual Studio中创建一个项目模板。我的基本解决方案包含两个项目和一个“解决方案项”文件夹,其中包含(除其他内容外)两个项目需要作为参考的库(.dlls)。

我的项目模板创建了这两个项目、一个“解决方案项”文件夹,并在“解决方案项”文件夹内创建了另一个文件夹(正如所需)。然而,它没有添加应该填充“解决方案项”的.dlls和其他文件。

在.vstemplate文件中,我将对.dlls的引用作为“ProjectItem”项目直接添加到“TemplateContent”节点下面,但它们被忽略了。

如果我尝试添加一个“项目”节点(好像我的“解决方案项”文件夹是一个项目),就会出现各种错误。

我必须实际创建一个虚拟项目来保存这些文件吗?

2个回答

5
似乎我需要在项目中包含“杂项文件”(微软的术语),才能让项目生成器找到它们。我把它们放进一个文件夹里,并将它们包含在我的一个项目模板中。
然后,我实现了一个 IWizard,并将其包含在解决方案模板中,在该项目被构建后,会将文件移动到我想要的位置,并修改 .csproj 文件,以便不会错过它们。
一切都运行良好,但感觉像是最粗暴的黑客手段...!有没有微软的人在这里呢?

2
你能否提供一个你所做的例子? - Clueless
是的,这看起来有点丑陋。你找到更好的方法了吗?谢谢。 - David

0

我以前从未创建过模板,所以只能猜测你在做什么。在我们的.sln文件中,我们的解决方案项目看起来像这样:

Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Build", "_Build", "{45E29CA9-E213-4C73-AA54-AE9B87F79F2D}"
    ProjectSection(SolutionItems) = preProject
        _Build\Project.proj = _Build\Project.proj
    EndProjectSection
EndProject

_Build 是 SolutionFolder,我们将其映射到一个名为 "_Build" 的物理文件夹中。在这种情况下,它包含一个文件,即 Project.proj 文件,当然也映射到物理文件夹版本。

希望这对你有所帮助..?


这并不是直接适用的,但它确实推动了我最终选择的方向(见下文)- 谢谢! - Chris Shaw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接