在azure管道中构建C ++项目时遇到问题,某些dll
文件被拒绝访问。
所以我需要运行一个批处理脚本来停止使用这些dll
我曾尝试在Visual Studio的pre-build事件中运行脚本,但是该脚本在Initialize Job
任务之后执行,所以无法正常工作
有什么方法可以在Initialize Job
中运行脚本吗?
答案 0 :(得分:0)
是否可以在“初始化作业”中运行脚本?
现在恐怕还没有这样的方法可以在Initialize Job中运行脚本。准备作业/初始化作业是管道中内置的一些预定义工作。我们无法在这些作业中或之前添加自定义脚本。
因此,要解决此问题,我们必须找到此错误的原因并加以解决。
通常,如果您的构建和发布代理脱机或由于计算机本身的问题而导致构建中断,并且在运行中在Azure Devops目录中创建特定文件的情况下,此错误很可能会出现。然后,当Azure Devops / TFS重新尝试建立新版本并写入/重新创建已经存在的文件时,它将失败,并显示以上错误。
最好的解决方法是手动登录到代理计算机,导航到受影响的目录/文件(在本示例中为C:\VSTS\_work\xxx\xx\.tmp
),然后删除有问题的文件/文件夹。删除有问题的项将有效地“清理”下一次构建定义执行,然后将其完成而不会出现问题。
希望这会有所帮助。
答案 1 :(得分:0)
我必须解决这个完全相同的问题。该解决方案并不理想,但它有效。 我创建了两个管道。第一个管道执行任何所需的预构建步骤,例如停止服务。第二个管道是实际的构建管道,它在第一个管道完成时被触发。 (请参阅管道 #2 中的构建触发器部分。)