我正在尝试从命令行构建 Xamarin Forms 解决方案,作为使用命令的构建脚本的一部分dotnet build <solution.sln>
。解决方案中的大部分项目构建;但是,有两个项目失败并显示此错误消息:(error MSB6006: "csc.exe" exited with code 1.
在 Ubuntu 上)和error MSB6006: "csc.exe" exited with code 8.
(在 Mac 上)。
我在不同的机器上运行 Ubuntu 18.04(使用适用于 Linux 的 Windows 子系统)和 MacOS 10.13.6。
我还尝试dotnet build <solution.sln>
从 Windows 命令行运行,该命令行会打印出此错误消息:
错误 MSB4062:无法从程序集 C:\Users\Jason.nuget\packages\livexaml\2.1.22\build\XamarinLive.Build.dll 加载“XamarinLive.Build.XamarinLiveTask”任务。无法加载文件或程序集“Microsoft.Build.Utilities.v4.0,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”。该系统找不到指定的文件。确认声明正确,程序集及其所有依赖项都可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共类。
但是,该解决方案在 VS2017(版本 15.9.7)中可以正常工作并构建良好。我试过搜索生成的二进制日志,但我无法理解它,而且似乎没有任何明显的错误(在 Ubuntu 和 Mac 上)。Windows 错误消息可能以某种方式相关吗?
失败的项目目标为 netstandard 2.0(与构建的项目相同)。dotnet --version
在所有 3 个环境中返回的版本是2.1.504
.
任何帮助将不胜感激。
对于这种情况,您需要使用 msbuild.exe 而不是dotnet build。
msbuild.exe
在完整框架上dotnet build
运行,同时在 .NET Core 上运行,并且大多数构建任务不支持。
当您在 VS 中构建它们时,它实际上是调用 msbuild.exe 来构建解决方案。因此您可以通过开发人员命令提示符很好地构建它,因为它也调用了 msbuild.exe。
对于 vs2017,你可以在C:\Program Files (x86)\Microsoft Visual Studio\2017\Edition\MSBuild\15.0\Bin
.
更多细节请参见 Martin's answer from this similar issue。感谢他的详细描述!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句