ASP.NET项目发布时TransformXml任务不支持SourceRootPath参数报错咨询
报错含义
该错误属于MSBuild构建阶段的参数不兼容错误:在ASP.NET项目发布流程执行TransformXml任务(该任务用于实现Web.config等配置文件的多环境转换)时,系统向该任务传入了SourceRootPath参数,但当前加载的TransformXml任务版本不支持该参数,也不存在对应可赋值的公开实例属性,因此触发构建中断。
可能触发原因
- 迁移后MSBuild任务版本冲突:原packages.config模式下项目引用了旧版本的
Microsoft.Web.Publishing.Tasks程序集,切换为PackageReference后,程序集引用优先级发生变化,项目实际加载的TransformXml任务版本低于VS自带发布目标文件Microsoft.Web.Publishing.targets的要求,旧版本任务未开放SourceRootPath属性。 - 残留自定义发布配置冲突:迁移前项目配置过自定义
.pubxml发布规则、或导入过第三方自定义.targets文件,上述配置中存在主动给TransformXml任务传递SourceRootPath参数的逻辑,和PackageReference模式下的默认发布逻辑冲突。 - NuGet传递依赖的任务覆盖:部分老旧的Web部署类、代码生成类NuGet包会自带自定义
TransformXml任务实现,迁移到PackageReference后,这些传递依赖的任务优先级高于VS官方提供的版本,第三方实现未兼容SourceRootPath参数。 - VS组件版本不匹配:当前使用的VS2019未更新到最新补丁,或Web开发 workload 组件缺失,导致自带的
Microsoft.Web.Publishing.targets文件已升级支持SourceRootPath参数,但配套的任务程序集未同步更新,出现版本不匹配。
内容的提问来源于stack exchange,提问作者chtenb
相关产品推荐
相关产品推荐

