当存在 DeployOnBuild 和 PublishProfile 参数时,MSBuild 会跳过一些任务
MSBuild skips some tasks when DeployOnBuild and PublishProfile parameters are present
当我使用 msbuild 从命令行构建一个 Web 项目并且没有特殊参数时,它似乎构建得很好,包括调用 nswag 任务来构建 TS 文件。
当我使用 /p:DeployOnBuild=true 参数和 /p:PublishProfile 参数集构建相同的 Web 项目时,根本没有调用 nswag,并且构建失败,因为 TS none文件已构建。
使用DeployOnBuild参数不是加法吗? csproj 文件中指定的任何构建任务是否仍应执行?
使用 MSBuild 的结构化日志查看器我能够确定为什么 MSBuild 在 DeployOnBuild=true
.
时似乎跳过了我的 csproj 文件中指定的 NSwag 任务
构建顺序很重要!
在我们的项目中,我们在构建时构建一个客户端 TS 文件,然后在最后 运行 yarn tsc
构建所有 JS 文件。
当我们添加 DeployOnBuild=true
时,在构建过程的早期,它会尝试将 JS 文件复制到包文件夹中。但是由于尚未构建客户端 TS 文件并从中创建 JS 文件,因此构建失败,甚至从未进入 NSwag 命令。
当我使用 msbuild 从命令行构建一个 Web 项目并且没有特殊参数时,它似乎构建得很好,包括调用 nswag 任务来构建 TS 文件。
当我使用 /p:DeployOnBuild=true 参数和 /p:PublishProfile 参数集构建相同的 Web 项目时,根本没有调用 nswag,并且构建失败,因为 TS none文件已构建。
使用DeployOnBuild参数不是加法吗? csproj 文件中指定的任何构建任务是否仍应执行?
使用 MSBuild 的结构化日志查看器我能够确定为什么 MSBuild 在 DeployOnBuild=true
.
构建顺序很重要!
在我们的项目中,我们在构建时构建一个客户端 TS 文件,然后在最后 运行 yarn tsc
构建所有 JS 文件。
当我们添加 DeployOnBuild=true
时,在构建过程的早期,它会尝试将 JS 文件复制到包文件夹中。但是由于尚未构建客户端 TS 文件并从中创建 JS 文件,因此构建失败,甚至从未进入 NSwag 命令。