TransformXml 任务通过 msbuild on linux 使用 mono 失败



按照本答案中的步骤操作后,当尝试通过mono(使用msbuild)构建项目时,出现以下错误:

(AfterCompile target) ->project.csproj(469,5):错误 MSB4062:"TransformXml"任务无法从程序集/usr/lib/mono/xbuild/Microsoft/VisualStudio/v15.0/Web/Microsoft.Web.Publishing.Tasks.dll 加载。 确认声明正确,程序集及其所有依赖项可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共类。

似乎Microsoft.Web.Publishing.Tasks.dll不可用。

在 linux 上通过单声道,这个文件不存在。若要解决此问题,请按照下列步骤操作:

  1. 安装 nuget 包 MSBuild.Microsoft.VisualStudio.Web.targets
  2. 右键单击您的项目,然后单击"卸载项目">
  3. 右键单击您的(现已卸载的)项目,然后单击"编辑我的项目名称.csproj">
  4. 替换此行:
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)MicrosoftVisualStudiov$(VisualStudioVersion)WebMicrosoft.Web.Publishing.Tasks.dll" />

使用更新的 nugetMicrosoft.Web.Publishing.Tasks.dll位置(根据需要更新MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3的版本名称):

<UsingTask TaskName="TransformXml" AssemblyFile="..packagesMSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3toolsVSToolsPathWebMicrosoft.Web.Publishing.Tasks.dll" />
  1. 重新加载你的项目,瞧,在Linux上构建!

最新更新