Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio vsprops中的CharacterType/ConfigurationType_Visual Studio_Vsprops - Fatal编程技术网

Visual studio vsprops中的CharacterType/ConfigurationType

Visual studio vsprops中的CharacterType/ConfigurationType,visual-studio,vsprops,Visual Studio,Vsprops,我一直在使用VisualStudio的属性表来构建代码,我有一个有用的表层次结构来控制构建设置,而不是将它们放在vcproj文件中。这是伟大的,除了一件事。我似乎无法在项目默认值部分设置属性,例如CharacterType和ConfigurationType 我尝试在vsprops中使用VCConfiguration工具,但没有成功: <Tool Name="VCConfiguration" ConfigurationType="4" /> 谁能告诉我这是如何实

我一直在使用VisualStudio的属性表来构建代码,我有一个有用的表层次结构来控制构建设置,而不是将它们放在vcproj文件中。这是伟大的,除了一件事。我似乎无法在项目默认值部分设置属性,例如CharacterType和ConfigurationType

我尝试在vsprops中使用VCConfiguration工具,但没有成功:

<Tool
    Name="VCConfiguration"
    ConfigurationType="4"
/>


谁能告诉我这是如何实现的吗?

这是因为项目默认设置更改了一系列设置,而不仅仅是一个。CharacterType比较简单,此.vsprops文件将其更改为Unicode:

<?xml version="1.0"?>
<VisualStudioPropertySheet
        ProjectType="Visual C++"
        Version="8.00"
        Name="Unicode Support">
        <Tool
                Name="VCCLCompilerTool"
                PreprocessorDefinitions="_UNICODE;UNICODE"/>
        <Tool
                Name="VCResourceCompilerTool"
                PreprocessorDefinitions="_UNICODE;UNICODE"/>
</VisualStudioPropertySheet>


然而,ConfigurationType改变了很多。最好是从一个普通的项目模板开始。保存.vcproj文件。更改ConfigurationType并再次保存。在两个.vcproj文件上运行一个diff,查看应该在项目属性表中包括哪些设置。然后,您还可以很容易地看到ConfigurationType元素实际上位于
部分。

感谢您的回答,我理解这一点,但是如果vsprops中工具标记外的属性出现在项目默认值部分内,则会忽略这些属性。中间目录和输出目录可以这样设置:在上面的示例中,输出目录起作用,但直接或间接继承属性页的所有项目都会忽略配置类型。@Cthutu:是的,您是对的,项目默认设置没有选择的选项“从父项或项目默认值继承”。afaik没有解决方法。不过,重要的是实际设置,它们控制项目的生成方式,而不是项目默认值。