VS2017 中导出的项目模板丢失源文件

Exported project template in VS2017 misses source files

当我在 Visual Studio 2017 中使用 Project -> Export template 选项时,生成的 ZIP 文件包含主要项目文件,但不包含任何 *.cpp*.hpp 文件我已经添加了。如何将所有内容包含在模板中?我还应该注意到,这种行为似乎在某个时候的更新中发生了变化。

是的,我只是把源放在里面,...我很幸运从 github 导出代码,因为它包含多个项目... 这是一件愚蠢的事情……在项目依赖项 "The Project Dependencies option is only available in a solution with more than one project" 下,所以我无法选择 select 源代码。 ......他们故意这样做的,但我不知道为什么。

您需要手动编辑 .vstemplate 文件并在 <TemplateData> 标签中添加 <CreateInPlace>true</CreateInPlace>,使其看起来像这样:

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
    <TemplateData>
        <Name>TemplateTest</Name>
        <Description><No description available></Description>
        <ProjectType>JavaScript</ProjectType>
        <ProjectSubType>
        </ProjectSubType>
        <SortOrder>1000</SortOrder>
        <CreateNewFolder>true</CreateNewFolder>
        <CreateInPlace>true</CreateInPlace>
        <DefaultName>CodovaTemplateTest</DefaultName>
        <ProvideDefaultName>true</ProvideDefaultName>
        <LocationField>Enabled</LocationField>
        <EnableLocationBrowseButton>true</EnableLocationBrowseButton>
        <Icon>__TemplateIcon.ico</Icon>
  </TemplateData>

问题出在您的 .vstemplate 文件中。您需要做的是对其进行编辑,以便 VS 知道应该有其他文件。解压缩导出的文件,添加所需的文件,然后打开 .vstemplate 文件。您应该更改的 .vstemplate 部分位于 <TemplateContent> 标记之间:

    <TemplateContent>
                <Project TargetFileName="project.vcxproj" File="project.vcxproj" ReplaceParameters="true">
                    <ProjectItem ReplaceParameters="false" TargetFileName="$projectname$.vcxproj.filters">project.vcxproj.filters</ProjectItem>
                    <ProjectItem ReplaceParameters="true" TargetFileName="file1.cpp">file1.cpp</ProjectItem>
                    <ProjectItem ReplaceParameters="true" TargetFileName="file2.h">file2.h</ProjectItem>
                    <ProjectItem ReplaceParameters="true" TargetFileName="input.txt">input.txt</ProjectItem>
                </Project>
    </TemplateContent>

这告诉 VS 在您创建项目时将文件 file1.cppfile2.hinput.txt 添加到项目中。只需将名称更改为您想要的文件,保存所有内容并重新压缩文件夹。