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

Fra*_*erZ 7 c# msbuild 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不可用.

Fra*_*erZ 13

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

  1. 安装nuget包MSBuild.Microsoft.VisualStudio.Web.targets
  2. 右键单击您的项目,然后单击"卸载项目"
  3. 右键单击(现在已卸载)项目,然后单击"编辑MyProjectName.csproj"
  4. 替换此行:
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.Tasks.dll" />
Run Code Online (Sandbox Code Playgroud)

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

<UsingTask TaskName="TransformXml" AssemblyFile="..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3\tools\VSToolsPath\Web\Microsoft.Web.Publishing.Tasks.dll" />
Run Code Online (Sandbox Code Playgroud)
  1. 重新加载你的项目,瞧,在linux上工作!