You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为基于CMake的MSVC项目模板添加文件?

问题

此前很少关注MSVC的项目模板,最近尝试后发现IDE GUI导出模板的方法对CMake项目不适用,但直接修改模板文件可行——复制CMake模板到用户模板目录并调整后能生效。

现在想在项目主目录下添加常用的头文件和库,参考官方文档后尝试在.vstemplate文件的<Project>标签内添加<ProjectItem>标签修改模板,但自定义头文件并未被引入。修改后的模板代码如下:

<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Project" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:sdk="http://schemas.microsoft.com/developer/vstemplate-sdkextension/2010">
  <TemplateData>
    <Name>CMake ImGui Project</Name>
    <Description>Build modern, cross-platform C++ GUI applications that don't depend on .sln or .vcxproj files</Description>
    <Icon Package="{976cf7d5-2a72-47a3-9e46-5b7c3db95f17}" ID="512" />
    <ProjectType>VC</ProjectType>
    <PlatformTag>windows</PlatformTag>
    <PlatformTag>linux</PlatformTag>
    <PlatformTag>macos</PlatformTag>
    <ProjectTypeTag>desktop</ProjectTypeTag>
    <LanguageTag>cpp</LanguageTag>
    <CreateNewFolder>true</CreateNewFolder>
    <DefaultName>CMakeImguiProject</DefaultName>
    <ProvideDefaultName>true</ProvideDefaultName>
  </TemplateData>
  <TemplateContent>
    <Project File="CustomWizard" IgnoreProjectParameter="VCWizard">
        <ProjectItem ReplaceParameters="true">$projectname$/zpp_bits/zpp_bits.h</ProjectItem>
        <ProjectItem ReplaceParameters="true">$projectname$/zpp_bits/LICENSE</ProjectItem>
    </Project>
  </TemplateContent>
  <WizardExtension>
    <Assembly>Microsoft.VC.Wizards, Version=17.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
    <FullClassName>Microsoft.VC.Wizards.AppWizards.CMakeProject.Wizard</FullClassName>
  </WizardExtension>
</VSTemplate>

解决方案

1. 匹配模板文件结构

在你的自定义CMake模板目录下,创建与目标路径一致的文件夹结构:

  • 在模板根目录新建zpp_bits文件夹
  • 将zpp_bits.h和LICENSE文件放入该文件夹

2. 修正<ProjectItem>路径

去掉路径中的$projectname$/前缀,直接使用相对于模板目录的路径:

<ProjectItem ReplaceParameters="true">zpp_bits/zpp_bits.h</ProjectItem>
<ProjectItem ReplaceParameters="true">zpp_bits/LICENSE</ProjectItem>

3. 适配CMake向导行为

你使用的CMakeProject.Wizard会自动扫描模板目录下的所有文件并复制到新项目中,只需确保:

  • 自定义文件/文件夹放在模板目录的对应位置
  • .vstemplate中正确声明文件的相对路径

4. 验证模板

将修改后的模板目录放到MSVC用户模板目录(通常为%USERPROFILE%\Documents\Visual Studio 2022\Templates\ProjectTemplates\Visual C++),重启Visual Studio后创建新项目,检查自定义文件是否被正确复制到项目根目录。

内容的提问来源于stack exchange,提问作者Andersama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 04:37:22