按照本答案中的步骤操作后,当尝试通过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 上通过单声道,这个文件不存在。若要解决此问题,请按照下列步骤操作:
- 安装 nuget 包 MSBuild.Microsoft.VisualStudio.Web.targets
- 右键单击您的项目,然后单击"卸载项目">
- 右键单击您的(现已卸载的)项目,然后单击"编辑我的项目名称.csproj">
- 替换此行:
<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" />
- 重新加载你的项目,瞧,在Linux上构建!