Asp.net 从Mono使用Microsoft.VisualStudio.Web.targets?

Asp.net 从Mono使用Microsoft.VisualStudio.Web.targets?,asp.net,msbuild,mono,xbuild,Asp.net,Msbuild,Mono,Xbuild,在尝试在基于Mono的CI构建中使用Microsoft.VisualStudio.Web.Publishing.targets中的TransformWebConfig和Package任务时,我依赖于MSBuild.Microsoft.VisualStudio.Web.targetNuGet包,并更新了项目文件以导入它。生成可以与MSBuild配合使用,但xbuild无法处理目标文件: 无法分析条件“$(EnableWebPublishProfileFile)”=='true'和“$(WebPub

在尝试在基于Mono的CI构建中使用Microsoft.VisualStudio.Web.Publishing.targets中的
TransformWebConfig
Package
任务时,我依赖于
MSBuild.Microsoft.VisualStudio.Web.target
NuGet包,并更新了项目文件以导入它。生成可以与MSBuild配合使用,但xbuild无法处理目标文件:

无法分析条件“$(EnableWebPublishProfileFile)”=='true'和“$(WebPublishProfileFile)!=”并且存在($(WebPublishProfileFile))”:在条件“$(EnableWebPublishProfileFile)=='true'和“$(WebPublishProfileFile)!=”和存在($(WebPublishProfileFile))”中的位置90处应有属性。在“$”之后缺少开头的论文

实际上,这是我显式尝试导入Microsoft.Web.Publishing.targets时出现的错误;它通常通过导入Microsoft.WebApplication.targets来传递导入。我认为xbuild在导入后者时无法(无声地)加载前者,因为我只是得到了错误:

错误:在项目中找不到名为“TransformWebConfig”的目标

同样,此构建可以很好地与MSBuild配合使用。项目文件具有以下导入指令:

在xbuild条件解析逻辑中似乎确实存在错误。看起来这可以通过Exists中变量的单引号来解决

Exists('$(WebPublishProfileFile)')

xbuild不是MSBuild,因此您应该接受这样一个事实,即它有缺陷,无法执行任何操作。Mono的人欢迎社区的贡献,所以如果你喜欢,你可以修复这些bug。