当我使用msbuild和没有特殊参数从命令行构建web项目时,它似乎构建得很好,包括调用nswag任务来构建TS文件。
当我使用/p:DeployOnBuild=true参数和/p:PublishProfile参数集构建相同的web项目时,根本不调用nswag,并且构建失败,因为没有构建任何TS文件。
不使用DeployOnBuild参数添加剂吗?不应该执行csproj文件中指定的任何构建任务吗?
使用MSBuild的结构化日志查看器,我能够确定为什么MSBuild在DeployOnBuild=true
.
时似乎跳过了我的csproj文件中指定的NSwag任务。建造顺序很重要!
在我们的项目中,我们在构建时构建一个客户端TS文件,然后在最后运行yarn tsc
来构建所有的JS文件。
当我们添加DeployOnBuild=true
时,在构建过程的早期,它试图将JS文件复制到包文件夹中。但是因为客户端TS文件还没有构建,JS文件是从它创建的,所以构建失败了,甚至没有到达NSwag命令。