【问题标题】:Set file name as project name in VS template在 VS 模板中将文件名设置为项目名
【发布时间】:2020-09-29 06:58:56
【问题描述】:

我一直在尝试在 VS for C++ 中制作自己的模板。 我想要一个与项目同名的cpphpp 文件。 我已经阅读了这个链接: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


【解决方案1】:

我最终使用以下方法成功:

  • 我在模板中添加了两个文件,分别名为 $safeprojectname$.hpp$safeprojectname$.cpp
  • 我编辑了我的vcxproj 文件(使用notepad++ 或任何其他文本编辑器),在Project 主标签内添加了以下标签:
  <ItemGroup>
    <ClInclude Include="%24safeprojectname%24.hpp" />
  </ItemGroup>
  <ItemGroup>
    <ClCompile Include="%24safeprojectname%24.cpp" />
  </ItemGroup>

我必须使用%24,因为$ 在此上下文中不是有效字符,24 是该字符的 ASCII (/unicode) 值。

【讨论】:

  • 我可以不用'$'。感谢您回答问题。
猜你喜欢
  • 1970-01-01
  • 2018-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-14
  • 1970-01-01
  • 2015-03-28
  • 2017-12-12
相关资源
最近更新 更多