在构建服务器上构建项目时如何解决解决方案级别的预构建事件宏?
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>
这解决了与项目相关的变量,而不是解决方案。
我指定了预构建事件
$(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>
这解决了与项目相关的变量,而不是解决方案。