【问题标题】:How can I add Solution Folder files to a VS Project Template?如何将解决方案文件夹文件添加到 VS 项目模板?
【发布时间】:2009-03-30 20:34:31
【问题描述】:

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

我的项目模板创建两个项目,“解决方案项目”文件夹和“解决方案项目”中的另一个文件夹(根据需要)。但是,它不会添加应该填充“解决方案项”的 .dll 和其他文件。

在 .vstemplate 文件中,我将 .dll 的引用添加为直接位于“TemplateContent”节点下方的“ProjectItem”项,它们被忽略了。

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

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

【问题讨论】:

    标签: c# visual-studio


    【解决方案1】:

    看来我确实需要在项目中包含杂项文件(Microsoft 的术语)才能让项目生成器找到它们。我将它们放入一个文件夹中,并将它们包含在我的一个项目模板中。

    然后我实现了一个 IWizard,我也将它包含在解决方案模板中,在构建该项目之后,它会将文件移动到我想要它们的位置,并修改 .csproj 文件,这样它就不会错过它们。

    一切正常,但感觉就像是最粗暴的黑客行为......!有MS的人吗?

    【讨论】:

    • 你能举个例子吗?
    • 是的,这看起来有点丑。你找到更好的方法了吗? ty
    【解决方案2】:

    我以前从未创建过模板,所以我只能猜测您在做什么。在我们的 .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 是解决方案文件夹,我们将其映射到一个物理文件夹,也称为“_Build”。在这种情况下,它包含一个文件,即 Project.proj 文件,该文件当然映射到物理文件夹版本。

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

    【讨论】:

    • 这不是直接适用的,但它确实将我推向了我最终前进的方向(见下文)——谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多