在构建服务器上构建项目时如何解决解决方案级别的预构建事件宏?

How to resolve solution-level pre-build event macros when building the project on the build server?

我指定了预构建事件

$(SolutionDir)Tools\ResxConverter.CLI.exe android $(SolutionDir)$(SolutionName).Core\Resources\ $(ProjectDir)Resources\

这对我在本地有效,但构建服务器失败并显示以下内容:

*Undefined*Tools/ResxConverter.CLI.exe android *Undefined**Undefined*.Core/Resources/ /Users/MyUser/myAgent/_work/9/s/MyProjectName/Resources/

宏似乎没有解析。显然这是因为构建服务器单独构建每个项目,并且宏仅在解决方案级别可用,但我不确定。

我需要做什么来解析构建服务器上预构建 exe 的路径?

原来的修复是修改 PreBuildEvent 以引用 ProjectDir 而不是 SolutionDir,例如

<PreBuildEvent>$(ProjectDir)..\Tools\ResxConverter.CLI.exe ios $(ProjectDir)..\MyProject.Core\Resources\ $(ProjectDir)Resources\</PreBuildEvent>

这解决了与项目相关的变量,而不是解决方案。