如何在VC项目模板

时间:2016-06-10 09:18:33

标签: visual-c++ visual-studio-2013 project-template

我在Visual Studio 2013解决方案中有很多VC项目。对于每个项目,我将其大部分属性保存在属性表AllConfigurations.props中,属于项目文件夹。 我正在尝试为此类项目创建项目模板。我将AllConfigurations.props添加到模板zip文件并在.vstemplate:

中引用它
  <Project TargetFileName="Test.vcxproj" File="Test.vcxproj" ReplaceParameters="true">
  <ProjectItem ReplaceParameters="false" TargetFileName="AllConfigurations.props">AllConfigurations.props</ProjectItem>

但是在使用此模板创建新项目时,Visual Studio会显示错误:

  

无法读取项目文件&#34; Test1.vcxproj&#34;。     Test1 \ Test1.vcxproj(76,5):导入的项目&#34; Test1 \ AllConfigurations.props&#34;没找到。确认声明中的路径是否正确,以及该文件是否存在于磁盘上。

项目未添加到解决方案中。在解压缩模板中的所有文件之前,VS似乎尝试加载新项目。

我该如何处理?

2 个答案:

答案 0 :(得分:2)

以下是如何创建包含用户属性表的Visual Studio C ++项目模板的方法。

  1. 创建要导出到模板的项目,并在 Property Manager 窗口中添加属性表。在您的情况下, AllConfigurations.props 文件。
  2. 解决方案资源管理器窗口中,将属性表文件添加到项目中。您必须执行此操作才能将文件放入模板存档中并自动复制到新项目中。
  3. 使用文件 - &gt;导出模板导出项目模板。在向导的第二页上,取消选中自动将模板导入Visual Studio 选项。
  4. 从模板zip文件中提取 .vcxproj 文件,然后在文本编辑器中打开。搜索包含属性表文件的行。项目中的每个构建配置都有一个。在你的情况下,他们应该是这样的: <Import Project="AllConfigurations.props" />。 将行更改为:<Import Project="AllConfigurations.props" Condition="exists('AllConfigurations.props')" />。即使文件尚不可用,这也将允许项目打开。
  5. 保存文件并将其添加回模板zip文件。
  6. 将zip文件复制到&lt; 我的文档&gt; \ Visual Studio \ Templates \ ProjectTemplates 目录。
  7. 关闭并重新打开Visual Studio,您应该能够使用新模板创建一个新项目。您可能必须关闭解决方案并重新打开它才能使属性表在 Property Manager 窗口中的所有配置下可见。如果您不希望在那里看到解决方案资源管理器窗口,则可以从新项目中删除 .props 文件。它仍将用于 Property Manager

答案 1 :(得分:1)

我遇到了同样的问题。我无法将属性表实际添加到项目中,因为它看起来像Visual Studio(在我的情况下为2013)将属性表视为项目。我希望我可以使用ProjectCollection和第二个vstemplate file的某种组合来创建首先由属性表组成的项目,然后是我的实际项目。但是,我最终一起破解了一个解决方案,因为它的工作要少得多。

  1. 打开.vcxproj文件,找到第一行看起来像<ImportGroup Label="PropertySheets" />

  2. 打开包含您要添加的属性的自定义属性表文件。复制Project元素下的所有元素(但不包括在内)。

  3. 将所有内容粘贴到您在步骤(1)中找到的位置之前。

  4. 注释掉或删除引用自定义属性表的ImportGroup元素的所有子元素(现在应该看起来像<!-- <Import Project="whatever.props" /> -->)。

  5. 重新压缩并安装模板。现在您应该能够创建一个包含您感兴趣的属性的项目。缺点是生成的.vcxproj有点难看,您不会有单独的属性表,但您至少应该能够分发并在新项目类型中引用您的属性。