我在 Visual Studio 16.8.3 (Enterprise 2019) 中有一个解决方案。解决方案的项目具有取决于环境变量值的设置OPTIMIZE
。类似于以下内容(省略其他设置):
<ItemDefinitionGroup Condition="'$(OPTIMIZE)' == 'TRUE'">
<ClCompile>
<WholeProgramOptimization>true</WholeProgramOptimization>
</ClCompile>
</ItemDefinitionGroup>
...
<ItemDefinitionGroup Condition="'$(OPTIMIZE)' != 'TRUE'">
<ClCompile>
<WholeProgramOptimization>false</WholeProgramOptimization>
</ClCompile>
</ItemDefinitionGroup>
我设置OPTMIZE=TRUE
并构建解决方案。然后我关闭VS,设置OPTIMIZE=FALSE
,打开VS。现在我期待整个解决方案将被重建,因为每个 cpp 的文件编译设置都发生了变化。但是当我按下 时Build Solution
,什么也没有发生。当我在解决方案资源管理器中右键单击该项目并按Build
时,什么也没有发生。
但是,当我在任何项目中选择任何 cpp 文件并对其进行编译时,该项目会以某种方式理解其所有 cpp 文件的设置都已更改。现在,如果我在解决方案资源管理器中右键单击该项目,然后按Build
,则将重建整个项目。
我希望项目了解当我更改环境变量的值时设置已更改。我怎样才能实现这种行为?
PS当然,Rebuild Solution
如果我知道设置已更改,我可以使用。但是我不想记住OPTIMIZE
变量的值自上次构建以来是否发生了变化。Build Solution
如果没有更改,我只想按一下并进行一个小的增量构建,如果设置更改,则进行完整的重建。