Visual Studio:我可以复制项目的属性以在另一个项目中使用吗?

时间:2011-06-17 12:59:57

标签: visual-studio-2010 visual-c++

我添加了几个目录,例如matlab,opencv等库,用于在Visual Studio项目中编译我当前的C文件。

我即将推出的所有项目都需要相同的设置/属性。我是否需要单独设置每个项目的属性,或者我可以做些什么来将它应用于所有项目?

4 个答案:

答案 0 :(得分:87)

尝试使用Property Sheets。这些可以创建一个可以由多个项目继承的单个属性文件。

  1. 使用“查看>其他Windows> Property Manager”调出Property Manager。它将显示您的项目和配置。

  2. 右键单击配置,然后选择“添加新项目属性表...”。您可以为其命名,并选择适用于所有项目的位置。

  3. 创建后,您可以像编译配置一样编辑其属性。

  4. 要将该属性表用作其他项目的基础,只需右键单击配置或项目,然后选择“添加现有属性表...”。浏览到保存原始工作表的位置,它将被继承。

  5. 对原始工作表的任何更改都将应用于任何继承它的项目,除非它们被覆盖。如果您进入链中较高的属性,则覆盖的属性将为其值设置粗体类型。为了让他们始终使用基表中的值,在适用的情况下会有“从父项或项目默认值继承”选项。

答案 1 :(得分:4)

我正在使用AtmelStudio 6.1,它是基于Visual Studio 2010构建的(我相信),但还没有我能找到的任何Property Manager。 所以,我使用的hackish系统是:

  1. 关闭(或至少通过上下文菜单卸载)要修改其配置的项目
  2. 在任何文本编辑器中打开它的.cproj文件(这是XML)(VS很好用),
  3. 在其他地方制作备份副本,
  4. 打开要复制其配置数据的项目的.cproj文件,
  5. 查找所需的配置数据。配置在PropertyGroup标签内;例如,在我的情况下,它看起来像

    <PropertyGroup Condition=" '$(Configuration)' == 'Preprocess only' "> 
    

    表示名为“仅预处理”的配置。从该标记的开头复制到相应的

    结束
    </PropertyGroup> 
    

    标签

  6. 将块粘贴到目标.cproj中,紧跟其他

    之后
    </PropertyGroup>
    

    标签。确保此文件中的配置名称是唯一的。保存。

  7. 你结束了。现在通常在VS中打开项目,您将能够选择添加的配置。

答案 2 :(得分:2)

对于Visual Studio 2010+,您可以创建一个Project Template

如果您选择在模板创建向导中将模板自动添加到Visual Studio,则在创建/添加新项目时,将显示模板(在重新启动Visual Studio之后)。使用此模板创建的项目将具有相同的项目属性!

要将源代码文件添加到模板中,最简单的方法是将solution-explorer中的源代码文件重新排列在根目录中(而不在任何文件夹下)。之后,然后生成模板。

为什么?有时,将您的文件放在默认的Source Code solution-explorer文件夹下(不在文件资源管理器中,.project.filters标签)将无法将源文件复制到模板中,您会看到“该文档无法打开。被重新命名为已删除或移动”,则当您尝试使用模板时,模板中所需的文件将不在文件浏览器中。

如果您确实需要solution-explorer文件夹,则必须通过将模板文件夹解压缩,进行更改,然后再次将其重新压缩,来将它们手动添加到模板中。

例如,将您希望模板包含的源文件从字面上复制并粘贴到template文件夹中,然后编辑.vstemplate文件。 M$ Doc on template editing

<TemplateContent>
<!-- put new file references here and/or in your .vcxproj .vcxproj.filters --> 
 TargetFileName="HelloWorld.cl">HelloWorld.cl</ProjectItem>
      <ProjectItem ReplaceParameters="false" 
</TemplateContent>

相关问题:

How do I use VS template I created?

How can i load a template I have created in Visual Studio?

How copy visual studio project?

由于复杂的GUID和文件名可能重叠,从而导致错误,因此不建议对复杂或共享的项目简单地复制和粘贴整个项目和解决方案。

答案 3 :(得分:1)

对于MSVS 2017,提到的@AaronMK进程不起作用。而是执行以下操作:

  1. 视图->其他Windows->媒体资源管理器
  2. 添加新的属性表。
  3. 在此处编辑所需的任何选项。
  4. 给它起一个合适的名字,以便您记住它。
  5. 右键单击它,然后单击“保存{myPropertySheet}”
  6. 明智的做法是将其放置在默认属性表的旁边,并且您可以随时添加它(通过Property Manager->添加现有属性表->浏览至其位置)。该目录为:EndDate

或者,您可以编辑默认属性表并在默认情况下使用它们。我不建议这样做,因为它们提供了一个后备选项,以防您搞砸。因此,如果要编辑默认文件,请先进行备份。