在 VS 模板中将文件名设置为项目名称
Set file name as project name in VS template
我一直在尝试在 VS 中为 C++ 创建自己的模板。
我想要一个与项目同名的 cpp
和 hpp
文件。
我已经读过这个link: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
文件本身中的文件名。感谢您的帮助!
我最终使用以下方法成功了:
- 我在我的模板中添加了两个文件,分别命名为
$safeprojectname$.hpp
和 $safeprojectname$.cpp
。
- 我编辑了我的
vcxproj
文件(使用记事本++或任何其他文本编辑器),在主 Project
标签内添加以下标签:
<ItemGroup>
<ClInclude Include="%24safeprojectname%24.hpp" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="%24safeprojectname%24.cpp" />
</ItemGroup>
我不得不使用 %24
,因为 $
在此上下文中不是有效字符,而 24
是该字符的 ASCII (/unicode) 值。
我一直在尝试在 VS 中为 C++ 创建自己的模板。
我想要一个与项目同名的 cpp
和 hpp
文件。
我已经读过这个link: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
文件本身中的文件名。感谢您的帮助!
我最终使用以下方法成功了:
- 我在我的模板中添加了两个文件,分别命名为
$safeprojectname$.hpp
和$safeprojectname$.cpp
。 - 我编辑了我的
vcxproj
文件(使用记事本++或任何其他文本编辑器),在主Project
标签内添加以下标签:
<ItemGroup>
<ClInclude Include="%24safeprojectname%24.hpp" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="%24safeprojectname%24.cpp" />
</ItemGroup>
我不得不使用 %24
,因为 $
在此上下文中不是有效字符,而 24
是该字符的 ASCII (/unicode) 值。