在Travis CI上使用Mono 5.14.0.177,msbuild 15.0,nuget 4.7.1构建失败,但在VirtualBox中无法重现

对于Xenial和Trusty Ubuntu,我在Travis CI上使用Mono 5.14.0.177,msbuild 15.0,nuget 4.7.1进行构建失败,但在VirtualBox,Ubuntu Xenial中无法重现。

跑完后:

mono tools/nuget/nuget.exe restore pythonnet.sln -o packages

错误消息是:

 Currently running NuGet.exe 4.1.0. Updating NuGet.exe to 4.7.1. Update successful. MSBuild auto-detection: using msbuild version '15.0' from '/usr/lib/mono/msbuild/15.0/bin'. Error parsing solution file at /home/travis/build/pythonnet/pythonnet/pythonnet.sln: Invalid Image 

这是VirtualBox的成功构建:

https://gist.github.com/denfromufa/23557331aba2ad548eba2fbff84f2307

并且在Travis CI中失败了:

https://travis-ci.org/pythonnet/pythonnet/jobs/419381040

关于GitHub的这个问题的更多细节:

https://github.com/pythonnet/pythonnet/pull/698

此问题已在pythonnet Travis CI中通过降级到msbuild 14.0暂时得到修复:

 cmd = "{0} update -self".format(nuget) self.debug_print("Updating NuGet: {0}".format(cmd)) subprocess.check_call(cmd, shell=use_shell) cmd = "{0} restore pythonnet.sln -MSBuildVersion 14 -o packages".format(nuget) 

https://github.com/pythonnet/pythonnet/blob/master/setup.py#L332