我正在尝试获取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
中找到它。
更多详细信息,请参阅此类似问题中的马丁答案。多亏了他的详细说明!