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


70

我已经添加了几个目录,库(如matlab,opencv等)来在Visual Studio项目中编译我当前的C文件。

我所有即将进行的项目都将需要相同的设置/属性。我是否需要分别设置每个项目的属性,或者可以做一些事情将其应用于所有项目?

Answers:


91

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

  1. 使用“查看>其他Windows>物业管理器”调出物业管理器。它将显示您的项目和配置。

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

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

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

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


7
该解决方案与哪个版本的VS有关?我似乎无法在VS-2008上使用它...我缺少什么吗?
Shai

21
是否有任何方法可以从已经配置了所有必需配置的当前项目中自动生成属性表?我不想再手动添加的每个属性的属性表
Samitha Chathuranga

看来这仅适用于C ++,不适用于fortran。对于fortran项目,“属性管理器”为空白。
user15964 '16

13
这对我不起作用,也无法回答问题,即如何将属性从一个项目移植到另一个项目。指示也含糊不清。
猫头鹰

4

我正在使用基于Visual Studio 2010构建的AtmelStudio 6.1(我相信),但是没有任何我可以找到的Property Manager。因此,我使用的黑客系统是:

  1. 关闭(或至少通过上下文菜单卸载)要修改其配置的项目
  2. 在任何文本编辑器中打开其.cproj文件(XML)(VS工作正常),
  3. 只是在其他情况下进行备份,
  4. 打开您要复制其配置数据的项目的.cproj文件,
  5. 查找所需的配置数据。配置位于PropertyGroup标记内;例如,在我的情况下

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

    用于名为“仅预处理”的配置。从该标签的开头复制到相应标签的结尾

    </PropertyGroup> 
    

    标签。

  6. 紧接着将块粘贴到目标.cproj中

    </PropertyGroup>
    

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

大功告成 现在,在VS中正常打开项目,您将能够选择添加的配置。


2

对于Visual Studio 2010+,您可以制作一个Project Template

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

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

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

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

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

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

相关问题:

如何使用我创建的VS模板?

如何加载在Visual Studio中创建的模板?

如何复制Visual Studio项目?

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


3
我正在使用Visual Studio 2017(Pro,v15.8.2); 在添加新项目时,可以使用属性表,并且可以使用属性管理器进行管理。
Mike P

1
您有来源(Property sheets are unsupported in Visual Studio 2017+.)吗?我可以在新文档中找到某些内容,并且它们仍在修复错误
-BNT

完善!如果您已经配置了属性而没有使用属性表(这是事实之后似乎没有办法导出表的方法),那么这是可以使用的解决方案
Joe Coder

2

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.