【发布时间】:2019-07-26 20:35:43
【问题描述】:
在 TFS 中,我为持续集成配置了一个门控签入。
它的目的只是构建和运行测试,我想尽可能快。
查看日志我注意到它花费了大量时间来编译本地化的嵌入式资源。
由于在 CI 中我并不真正关心翻译,有没有办法配置任务以跳过它们并只编译默认的?
【问题讨论】:
标签: tfs msbuild continuous-integration azure-devops azure-pipelines
在 TFS 中,我为持续集成配置了一个门控签入。
它的目的只是构建和运行测试,我想尽可能快。
查看日志我注意到它花费了大量时间来编译本地化的嵌入式资源。
由于在 CI 中我并不真正关心翻译,有没有办法配置任务以跳过它们并只编译默认的?
【问题讨论】:
标签: tfs msbuild continuous-integration azure-devops azure-pipelines
这并不容易。生成附属程序集的目标在标准构建管道中不是可选的/有条件的。 Satellite 程序集的生成由Microsoft.Common.CurrentVersion.Targets 控制,并通过GenerateSatelliteAssemblies 目标定义。
您可以尝试将/p:CreateSatelliteAssembliesDependsOn=;SatelliteDllsProjectOutputGroupDependsOn= 添加到 msbuild 参数以覆盖生成目标。
【讨论】:
CreateSatelliteAssembliesDependsOn 似乎起到了一定的作用,因为现在没有编译卫星。不幸的是,msbuild 仍然尝试将编译后的 DLL 复制到输出目录,因此失败。特别是,目标CoreResGen 的步骤CopyFilesToOutputDirectory 是失败的。