我试图在Visual Studio 2013 Update 4解决方案中将某些C++项目中的某些属性分解为单独的属性文件,然后将其导入到vcxproj文件中。这样做之后,我注意到属性似乎不再反映在属性编辑器GUI中。例如,如果我从某个文件导入这个
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
字符串
属性GUI中的“字符集”项显示为空白,而不是直接在vcxproj文件中定义。但是属性GUI中的C++命令行确实包含'/D“_UNICODE”/D“UNICODE”',因此该属性似乎正在被注意并生效。
所以这只是一个GUI的事情,或者这样做会导致东西不能正确构建?我的猜测是Visual Studio寻找像''这样的元素,但只直接在vcxproj文件中这样做,而不是在它导入的任何东西中。
2条答案
按热度按时间d5vmydt91#
Visual Studio 2010、2012、2013、2015、2017、2019和2022仅从项目文件本身中的项目创建可视化和可编辑选项列表。
来自included files的项目仅用作配置选项的默认值。来自included files的值将被处理和使用,即使它们在GUI中没有可视化。
要在GUI中看到内容,必须在.vcxproj文件中至少添加空的对应项。
例如,要查看主配置,您需要将空的“PropertyGroup”与标签“Configuration”(针对每个项目配置)添加到.vcxproj文件中:
字符串
要查看输出文件的名称、位置和其他常规属性,请添加不带标签的空“PropertyGroup”:
型
要查看C/C++编译器、链接器和库设置,请将“ItemCompile”、“Link”和“Lib”项添加到.vcxproj文件中:
型
如果你把这里提到的所有东西都添加到你的.vcxproj文件中,你将在GUI中看到所有的C/C++设置,你将能够改变它们。
p8ekf7hl2#
如果你正确地使用了“propertysheets”,你可以在VS的
Property Manager
窗口中看到它们,很好地按层次顺序排列,包括其中包含的选项。我猜您现在手动修改了vcxproj并添加了一个
Import
。(正如你在命令行中看到的那样),它不能很好地与VS配合使用。所以,不要这样做,而是恢复您的更改,并前往属性管理器并在那里添加一些属性文件。VS将在正确的位置为您创建导入语句,并且应该像往常一样显示所有属性。