【问题标题】:Visual Studio 2013/2015 C++ Item Templates Missing缺少 Visual Studio 2013/2015 C++ 项目模板
【发布时间】:2014-01-18 10:25:28
【问题描述】:

我正在尝试为 Visual Studio 2013 (Professional) C++ 项目制作一些简单的项目模板,但 Visual Studio 似乎在与我作斗争。我开始使用 File -> Export Template... 向导,该向导完成并生成了一个 zip 文件,但可惜的是,新模板在 Add New Item 对话框中无处可见,所以我开始手动编辑它以查看是否可以修复它。

这是我的测试.vstemplate 文件:

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
  <TemplateData>
    <DefaultName>test</DefaultName>
    <Name>Test</Name>
    <Description>Test item template.</Description>
    <ProjectType>VC</ProjectType>
    <!--<SortOrder>10</SortOrder>-->
    <Icon>icon.ico</Icon>
  </TemplateData>
  <TemplateContent>
    <ProjectItem TargetFileName="$fileinputname$.h" ReplaceParameters="true">test.h</ProjectItem>
  </TemplateContent>
</VSTemplate>

我尝试将VCVisualC 用于&lt;ProjectType&gt;,并将模板以压缩和展开形式放在各种文件夹中。

&lt;ProjectType&gt; 更改为CSharp 并创建一个C# 项目后,它会立即显示出来。有趣的是,如果%USERPROFILE%\Documents\Visual Studio 2013\Templates\ItemTemplates\Visual C# 目录为空,则模板现在会在%USERPROFILE%\Documents\Visual Studio 2013\Templates\ItemTemplates%USERPROFILE%\Documents\Visual Studio 2013\Templates\ItemTemplates\Visual C++ Project 目录中显示,但如果它的副本也在Visual C# 目录中,它会在新项目对话框...

我知道 Visual Studio 2013 Express RC 存在一个错误,其中“新项目”对话框根本不会显示任何模板,甚至是内置模板,所以我认为这可能是 Visual Studio 中的一个错误,或者只是微软对 C++ 令人不安的无视的另一个例子。

我在这里遗漏了什么还是 VS2013 的错误?如果是这样,有人知道任何解决方法吗?

编辑:这个问题在 Visual Studio 2015 RC 中仍然存在

【问题讨论】:

  • 正在进行中,C++ 项目模板仍使用与code wizards 一起使用的旧格式。也许下一个版本。
  • @HansPassant 感谢您的信息。似乎当您使用导出模板工具制作 VC 模板时,如果它们根本不受支持,他们应该给您一个警告......也许到完全支持 C++11 时,这将得到修复......从现在起10年后,很可能。无论如何做出一个答案,我会接受它。
  • 哇 10 个月,仍然没有答案。即使我正在寻找解决方案
  • 试过VS2015 Preview,同样的情况。模板不显示。
  • 这对我来说也是个问题。我在 Microsoft Connect 上提出了这个问题:connect.microsoft.com/VisualStudio/feedback/details/1094450

标签: c++ visual-studio visual-c++ visual-studio-2013 visual-studio-2015


【解决方案1】:

我第一次使用 VS 模板冒险,我遇到了这个!大奖!

经过几个小时的摆弄,我现在可以添加自己的模板,至少在 VS Community 2013 中是这样。我认为诀窍是添加 &lt;TemplateGroupID&gt;WinRT-Common&lt;/TemplateGroupID&gt;。作为参考,这个项目模板在一个空的 C++ 项目中为我显示:

<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
  <TemplateData>
    <Name>GameEngine Core Class</Name>
    <Description>Creates a header and source file for a new GameEngine Core class.</Description>
    <Icon>__TemplateIcon.png</Icon>
    <TemplateGroupID>WinRT-Common</TemplateGroupID>
    <ProjectType>VC</ProjectType>
    <DefaultName>GameEngineClassName</DefaultName>
  </TemplateData>
  <TemplateContent>
    <ProjectItem TargetFileName="$fileinputname$.cpp" ReplaceParameters="true" OpenInEditor="true">GameEngineClass.cpp</ProjectItem>
    <ProjectItem TargetFileName="$fileinputname$.h" ReplaceParameters="true" OpenInEditor="true">GameEngineClass.h</ProjectItem>
  </TemplateContent>
</VSTemplate>

对于TemplateGroupID,默认的 (VC-Native) 和 VC-Windows 似乎都可以工作(here 的完整列表)。我不确定将WinRT-Common 放在那里可能会产生什么进一步的影响。它甚至没有列出来。

更多细节:我开始对 VS2013 附带的 ComputeShader.vstemplate 进行试验,将其放入模板文件夹并修改文件,直到它成为现在的样子。一路走来,我意识到将所有内容放在 .zip 文件中非常重要,尽管它最初似乎可以工作,因为 Visual Studio 在检测模板时最终会表现得非常奇怪(在我意识到之前,这非常令人沮丧)。我想这与缓存有关。

【讨论】:

    【解决方案2】:

    遇到同样的问题。对我有用的解决方法是使用 VS2013 Express 版本,其中 C++ 项目模板工作得很好(就像他们在 VS2012 Pro/Express 中所做的那样)。我不知道为什么这个方便的功能已经从专业版中删除,但在免费快递版中继续工作。

    【讨论】:

    • 我也遇到了这个问题。需要安装多个版本的 IDE 才能使其正常工作,这很愚蠢。这仍然是一个非常有用的帖子!我赞成这个答案。谢谢你:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    • 2015-10-16
    相关资源
    最近更新 更多