使用 post-build 事件为 Azure Functions 项目复制 PDB

Copy PDB with post-build event for Azure Functions project

我在 Azure Functions V2 项目 Core 2.2 上使用 post-build 命令努力将文件从 bin 文件夹复制到上一级。我认为问题有两个部分。

目前我的命令针对一个特定文件,因为这是我遇到问题的文件:

 <Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="(robocopy $(TargetDir)bin\ $(TargetDir) MyProject.pdb) ^&amp; IF %25ERRORLEVEL%25 LSS 8 SET ERRORLEVEL = 0" />

PDB 文件在新版本中不可用

当 运行 作为全新构建时,当复制命令为 运行 时,主项目的原始 PDB 文件不可用 - robocopy 报告文件不可用。它们存在于依赖项目中,可能是因为它们已经构建。

那么PDB文件是什么时候生成的呢?它是在 post-build 命令之后制作的吗?我可以在 AfterTargets 中放置一些目标,而不是在 PostBuildEvent 之后将此命令发送到 运行 吗?

文件未被复制

当我 运行 第二次构建时会发生这种情况,因此原始 PDB 文件 确实 存在。

我有一个 robocopy 命令(我在绝望中也尝试过 copy 和 xcopy)在 运行 手动时有效:

(robocopy $(TargetDir)bin\ $(TargetDir) MyProject.pdb) ^& IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0

当运行作为post-构建事件时,它甚至报告文件已被复制:

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) *) ^&amp; IF %25ERRORLEVEL%25 LSS 8 SET ERRORLEVEL = 0" />