使用 Mono 的 Microsoft.VisualStudio.Web.targets?
using Microsoft.VisualStudio.Web.targets from Mono?
为了在基于 Mono 的 CI 构建中使用来自 Microsoft.VisualStudio.Web.Publishing.targets 的 TransformWebConfig
和 Package
任务,我依赖于 MSBuild.Microsoft.VisualStudio.Web.target
NuGet 包并更新我的项目文件以导入它。构建在 MSBuild 上运行良好,但 xbuild 无法处理目标文件:
Unable to parse condition "'$(EnableWebPublishProfileFile)'=='true' And '$(WebPublishProfileFile)' != '' And Exists($(WebPublishProfileFile))" : Expected a property at position 90 in condition "'$(EnableWebPublishProfileFile)'=='true' And '$(WebPublishProfileFile)' != '' And Exists($(WebPublishProfileFile))". Missing opening parantheses after the '$'.
实际上,这是我明确尝试导入时的错误 Microsoft.Web.Publishing.targets
;它通常通过导入 Microsoft.WebApplication.targets
来传递导入。我认为当我只导入后者时 xbuild 无法(无声地)加载前者,因为我只是收到错误:
error : Target named 'TransformWebConfig' not found in the project.
同样,此构建适用于 MSBuild。项目文件具有以下导入指令:
<Import Project="$(SolutionDir)\packages\MSBuild.Microsoft.VisualStudio.Web.targets\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" />
xbuild 条件解析逻辑中似乎确实存在 bug。看起来这可以在 Exists
中用单引号围绕变量解决
Exists('$(WebPublishProfileFile)')
为了在基于 Mono 的 CI 构建中使用来自 Microsoft.VisualStudio.Web.Publishing.targets 的 TransformWebConfig
和 Package
任务,我依赖于 MSBuild.Microsoft.VisualStudio.Web.target
NuGet 包并更新我的项目文件以导入它。构建在 MSBuild 上运行良好,但 xbuild 无法处理目标文件:
Unable to parse condition "'$(EnableWebPublishProfileFile)'=='true' And '$(WebPublishProfileFile)' != '' And Exists($(WebPublishProfileFile))" : Expected a property at position 90 in condition "'$(EnableWebPublishProfileFile)'=='true' And '$(WebPublishProfileFile)' != '' And Exists($(WebPublishProfileFile))". Missing opening parantheses after the '$'.
实际上,这是我明确尝试导入时的错误 Microsoft.Web.Publishing.targets
;它通常通过导入 Microsoft.WebApplication.targets
来传递导入。我认为当我只导入后者时 xbuild 无法(无声地)加载前者,因为我只是收到错误:
error : Target named 'TransformWebConfig' not found in the project.
同样,此构建适用于 MSBuild。项目文件具有以下导入指令:
<Import Project="$(SolutionDir)\packages\MSBuild.Microsoft.VisualStudio.Web.targets\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" />
xbuild 条件解析逻辑中似乎确实存在 bug。看起来这可以在 Exists
中用单引号围绕变量解决Exists('$(WebPublishProfileFile)')