我正在尝试使用.csproj中的以下条目在源代码管理中的项目的相对位置使用目标
<Import Project="..\..\Shared\Build\Tools\Targets\config.transform.targets" Condition="Exists('..\..\Shared\Build\Tools\Targets\config.transform.targets')" />
以下路径中提到的共享文件夹是.csproj文件位置上方的两个级别,如中所示 仪表板\共享\建立\工具\目标 仪表板\管理员\ ConfigurationConsole \ ConfigurationConsole.csproj
本地项目&amp;解决方案构建正常,但在构建服务器上排队时失败并出现以下错误。
项目中不存在TransformWebConfig。
所以在尝试了很多事情之后,我终于改变了下面的相对路径,它起作用了。
<Import Project="..\Shared\Build\Tools\Targets\config.transform.targets" Condition="Exists('..\Shared\Build\Tools\Targets\config.transform.targets')" />
想知道这里发生了什么,以及可以在任何地方运行的适当解决方案。
答案 0 :(得分:1)
实际上指向相对路径的更好方法是使用$(MSBuildProjectDirectory)环境变量强制当前路径为当前项目目录
Relative paths with MSBuild project vs solution
MSBuild: convert relative path in imported project to absolute path