我正在使用Azure Functions V2项目Core 2.2上的后生成命令从一个级别的bin文件夹复制文件。我认为问题有两个部分。
目前,我的命令针对的是一个特定的文件,因为那是我遇到的问题:
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="(robocopy $(TargetDir)bin\ $(TargetDir) MyProject.pdb) ^& IF %25ERRORLEVEL%25 LSS 8 SET ERRORLEVEL = 0" />
PDB文件在新版本中不可用
作为全新版本运行时,运行copy命令时,主项目的原始PDB文件不可用-robocopy报告文件不可用。它们存在于从属项目中,可能是因为它们已经构建。
那么何时生成PDB文件?它是在post-build命令之后进行的吗?我可以在AfterTargets
中放置一些目标,而不是PostBuildEvent
来使此命令运行吗?
未复制文件
这种情况在我再次运行构建时发生,因此原始PDB文件does存在。
我有一个robocopy命令(我在绝望中也尝试过copy和xcopy)在手动运行时可以工作:
(robocopy $(TargetDir)bin\ $(TargetDir) MyProject.pdb) ^& IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
当作为构建后事件运行时,它甚至报告文件已被复制:
Total Copied Skipped Mismatch FAILED Extras
Dirs : 1 0 1 0 0 0
Files : 1 1 0 0 0 0
Bytes : 57.5 k 57.5 k 0 0 0 0
Times : 0:00:00 0:00:00 0:00:00 0:00:00
但是文件不存在。复制文件后的某个时间是否清除了目录?如上所述,我最好的猜测是我需要其他一些AfterTargets
设置。
这似乎是一件很普通的事情。...我错过了什么,还是因为这是一个Functions项目?
结果是有一个_GenerateFunctionsPostBuild
目标(不确定确切来源),但使用该目标已修复该目标
<Target Name="PostBuild" AfterTargets="_GenerateFunctionsPostBuild">
<Exec Command="(robocopy $(TargetDir)bin\ $(TargetDir) *) ^& IF %25ERRORLEVEL%25 LSS 8 SET ERRORLEVEL = 0" />