"dotnet build"命令失败并显示错误 MSB6006:"csc.exe"退出,代码为 1



我正在尝试获取Xamarin表单解决方案,以便使用命令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(使用Windows子系统用于Linux(和MacOS 10.13.6在单独的机器上。

我还尝试从Windows命令行中运行dotnet build <solution.sln>,该行打印出此错误消息:

错误msb4062:" xamarinlive.build.xamarinlivetask"任务无法从汇编C: users users jason.nuget packages livexaml 2.1.1.22 build build build build build xamarinlive.build.dll.dll。无法加载文件或汇编'microsoft.build.utilities.v4.0,版本= 4.0.0.0,culture =中性,publickeytoken = b03f5f7f11d50a3a'。该系统找不到指定的文件。确认声明是正确的,汇编及其所有依赖项都可用,并且该任务包含一个实现microsoft.build.framework.itask的公共类。

但是,该解决方案在VS2017(版本15.9.7(内部起作用并良好。我尝试过搜索生成的二进制日志,但我对此无法理解,并且似乎没有任何明显的错误(在Ubuntu&amp; Mac上(。Windows错误消息可以以某种方式关联吗?

目标NetStandard 2.0失败的项目(与构建的项目相同(。dotnet --version在所有3个环境上返回的版本均为2.1.504

任何帮助将不胜感激。

您需要使用msbuild.exe而不是dotnet 建造 对于这种情况。

msbuild.exe在全框架上运行,而dotnet build在.NET Core上运行,并且大多数构建任务不支持。

当您在vs中构建它们时,它实际上调用msbuild.exe构建解决方案。因此,您可以通过开发人员命令提示符构建它,因为它也调用msbuild.exe。

对于VS2017,您可以在C:Program Files (x86)Microsoft Visual Studio2017EditionMSBuild15.0Bin中找到它。

更多详细信息,请参阅此类似问题中的马丁答案。多亏了他的详细说明!

最新更新