【发布时间】:2020-09-29 06:58:56
【问题描述】:
我一直在尝试在 VS for C++ 中制作自己的模板。
我想要一个与项目同名的cpp 和hpp 文件。
我已经阅读了这个链接:How can I set a file name using a variable in a Visual Studio project template
但是,当使用我的模板时,文件不在我创建的项目中。
这是我的vstemplate 文件:
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
<TemplateData>
<Name>My Template</Name>
<Description>A test template</Description>
<ProjectType>VC</ProjectType>
<ProjectSubType>
</ProjectSubType>
<SortOrder>1000</SortOrder>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>MyProject</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<Icon>__TemplateIcon.png</Icon>
<PreviewImage>__PreviewImage.png</PreviewImage>
</TemplateData>
<TemplateContent>
<Project TargetFileName="MyTemplate.vcxproj" File="MyTemplate.vcxproj" ReplaceParameters="true">
<ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$.vcxproj.filters">MyTemplate.vcxproj.filters</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$.cpp">MyFile.cpp</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$.hpp">MyFile.hpp</ProjectItem>
</TemplateContent>
</VSTemplate>
我做错了什么?
编辑:设法弄清楚,必须替换 vcxproj 文件本身中的文件名。感谢您的帮助!
【问题讨论】:
-
Project TargetFileName="MyTemplate.vcxproj"->Project TargetFileName="$safeprojectname$.vcxproj"?并且您在模板 zip 文件的根目录中有模板文件吗? VS 复制和重命名文件,它不会无中生有地创建文件。 -
是的,我当然有文件。我也尝试过使用 $safeprojectname$.vcxproj 但是解决方案完全是空的,其中甚至没有 vcxproj 文件。
-
设法弄明白,必须替换
vcxproj文件本身中的文件名。感谢您的帮助! -
您能分享一下您对项目文件所做的更改吗?
-
@user3461121 我添加了一个答案来解释我做了什么。我真的应该早点这样做,非常抱歉
标签: visual-studio templates visual-studio-templates