首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在VC项目模板中包含属性表

如何在VC项目模板中包含属性表
EN

Stack Overflow用户
提问于 2016-06-10 09:18:33
回答 2查看 2.5K关注 0票数 2

我在Visual 2013解决方案中有很多VC项目。对于每个项目,我将其大部分属性保存在属性表AllConfigurations.props中,属于项目的文件夹。我试图为这样的项目创建一个项目模板。我将AllConfigurations.props添加到模板zip文件中,并在.vstemplate中引用它:

代码语言:javascript
运行
复制
  <Project TargetFileName="Test.vcxproj" File="Test.vcxproj" ReplaceParameters="true">
  <ProjectItem ReplaceParameters="false" TargetFileName="AllConfigurations.props">AllConfigurations.props</ProjectItem>

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

无法读取项目文件"Test1.vcxproj“。Test1\Test1.vcxproj(76,5):未找到导入的项目"Test1\AllConfigurations.props“。确认声明中的路径是正确的,并且文件存在于磁盘上。

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

我该怎么处理?

EN

回答 2

Stack Overflow用户

发布于 2017-03-16 03:34:23

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

  1. 创建要导出到模板的项目,并在属性管理器窗口中添加属性表。在您的例子中,AllConfigurations.props文件。
  2. 解决方案资源管理器窗口中,将属性表文件添加到项目中。必须这样做才能将文件放入模板存档并自动复制到新项目中。
  3. 使用文件->导出模板导出项目模板。在向导的第二页上,取消选中自动将模板导入Visual 选项。
  4. 从模板zip文件中提取.vcxproj文件并在文本编辑器中打开。搜索包含属性表文件的行。在您的项目中,每个构建配置都有一个。在您的例子中,它们应该如下所示:<Import Project="AllConfigurations.props" />。将行更改为:<Import Project="AllConfigurations.props" Condition="exists('AllConfigurations.props')" />。这将允许项目打开,即使该文件还不可用。
  5. 保存该文件并将其添加回模板zip文件。
  6. 将压缩文件复制到<My Documents>\Visual Studio版本的\Templates\ProjectTemplates目录中。

关闭并重新打开Visual,您应该能够使用新模板创建一个新项目。您可能必须关闭解决方案并重新打开它,以便属性表在属性管理器窗口中的所有配置下可见。如果不希望.props文件在解决方案资源管理器窗口中可见,可以从新项目中删除它。它仍将在属性管理器中使用。

票数 3
EN

Stack Overflow用户

发布于 2016-08-26 04:20:52

我也有同样的问题。我无法将属性表实际添加到项目中,因为它看起来像Visual (在我的例子中是2013年)将属性表视为项目。我希望我可以使用一些ProjectCollection和第二个V茎板文件的组合来创建由属性表组成的项目,然后是我的实际项目。然而,我最终将一个解决方案合并在一起,因为它的工作要少得多。

  1. 打开.vcxproj文件,找到与<ImportGroup Label="PropertySheets" />类似的第一行
  2. 打开包含您感兴趣添加的属性的自定义属性表文件。复制(但不包括) Project元素下的所有元素。
  3. 在步骤(1)中找到的位置之前粘贴所有这些内容。
  4. 注释掉或删除引用自定义属性表的ImportGroup元素的所有子元素(现在看起来应该像<!-- <Import Project="whatever.props" /> -->)。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37744478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档