Visual Studio 2019 预处理器定义作为 cmd/sript 的结果

Visual Studio 2019 Preprocessor definition as a result of cmd/sript

我如何从求值表达式中定义一个变量?我在 Project->Configuration Properties-> C/C++ -> Command Line /D "__MYVAL__=$(python3 .\calc.py)" 中添加了我的 C++ 项目 ( Visual Studio 2019 ),但我收到错误 "the expression cannot be evaluated"。我如何在 windows 上的 visual studio 2019 预处理器中执行此操作?

所以这实际上不是 Visual Studio 的东西 - 这是更深一层。欢迎来到相对未知的 MSBuild 世界。

MSBuild 是 Visual Studio 的后端构建引擎。它处理构建过程的所有元素,并负责管理和评估构建的属性、执行目标、查找和构建依赖项等。

如果您真正深入了解细节,您会发现 Visual Studio 项目实际上只是 MSBuild 脚本。

看看the official documentation on properties for MSBuild。根据我能读到的内容,您似乎可以将 C# 代码直接添加到 属性 的值中,然后 MSBuild 将执行该代码以执行自定义操作。

如果这还不足以满足您的目的,您还可以创建一个 custom MSBuild task,这将允许您在构建过程中 运行 任何您喜欢的代码。

一旦你为你想要的东西定义了 属性(我们称之为 MyProperty),你可以通过以下方式在命令行上引用它:

/D __MYVAL__=$(MyProperty)