Android的VSTS构建定义失败

时间:2016-10-13 04:24:12

标签: build azure-devops tfsbuild tfs2015 build-definition

我开始使用Team Services的构建定义来购买Xamarin Android应用程序。在Visual Studio中,一切正常,我可以将代码签入VS Team Services。

更新1

现在,目前为我的项目创建一个构建定义,它正在下降。

enter image description here

这是日志的一部分:

  

2016-10-13T03:30:45.7198826Z 考虑将“Xamarin.Forms.Xaml,Version = 2.0.0.0,Culture = neutral,processorArchitecture = MSIL”视为文件名,但它不存在。

     

2016-10-13T03:30:45.7748834Z 2> C:\ a \ 1 \ s \ DentalLife \ packages \ Xamarin.Forms.2.3.1.114 \ build \ portable-win + net45 + wp80 + win81 + wpa81 + MonoAndroid10 + MonoTouch10 + Xamarin.iOS10 \ Xamarin.Forms.targets(40,3):错误MSB4062:无法从程序集C加载“Xamarin.Forms.Build.Tasks.FixedCreateCSharpManifestResourceName”任务:\ A \ 1 \ S \ DentalLife \包\ Xamarin.Forms.2.3.1.114 \建立\便携式双赢+ net45 + WP80 + win81 + wpa81 + MonoAndroid10 + MonoTouch10 + Xamarin.iOS10 \ Xamarin.Forms.Build.Tasks。 DLL。无法加载文件或程序集'file:/// C:\ a \ 1 \ s \ DentalLife \ packages \ Xamarin.Forms.2.3.1.114 \ build \ portable-win + net45 + wp80 + win81 + wpa81 + MonoAndroid10 + MonoTouch10 + Xamarin.iOS10 \ Xamarin.Forms.Build.Tasks.dll'或其依赖项之一。该系统找不到指定的文件。确认声明是否正确,程序集及其所有依赖项是否可用,以及该任务是否包含实现Microsoft.Build.Framework.ITask的公共类。 [C:\一个\ 1 \ S \ DentalLife \ DentalLife \ DentalLife \ DentalLife.csproj]

     

2016-10-13T03:30:45.7778918Z 2>完成建筑项目“C:\ a \ 1 \ s \ DentalLife \ DentalLife \ DentalLife \ DentalLife.csproj”(默认目标) - - 失败。

     

2016-10-13T03:30:45.7808866Z 1>完成建筑项目“C:\ a \ 1 \ s \ DentalLife \ DentalLife \ DentalLife.Droid \ DentalLife.Droid.csproj”( clean; PackageForAndroid target(s)) - FAILED。

     

2016-10-13T03:30:45.8018852Z

     

2016-10-13T03:30:45.8018852Z 构建失败。

之后,几天试图找到任何信息,我发现以下stackoverflow链接:

  1. Visual Studio Team Services - Build fails, definition wrong?
  2. TFS remains out of sync after Get Sources step
  3. 基本上,在这些帖子中,他们提到这可能是一个与安全相关的问题。

    我尝试遵循所有建议,将权限更改为更改某些参数,例如构建作业授权范围。但到目前为止运气不错: - (

    enter image description here

    更新2

    经过大量尝试并在互联网上查找,我发现问题是托管代理有一个不同版本的Xamarin.Froms。然后我发现了这篇文章http://www.blogaboutxamarin.com/xamarin-devops-with-vsts-setup-a-cross-platform-build-agent-on-windows/,我创建了一个内部代理,Xamarin.Forms版本更新为6.1.1。之后,我能够以绿色排队构建ALL: - )

    但是,我决定在我的解决方案中将Xamarin.Forms版本升级为2.3.1.114,因为我需要使用该版本中可用的类。在本地,它构建并运行正常。

    现在,问题在于VSTS中的代理构建。这一次向我展示了一个不同的错误。有些dll无法找到:

      

    obj \ Release \ android \ src \ mono \ android \ support \ v7 \ internal \ widget \ ActivityChooserModel_OnChooseActivityListenerImplementor.java:8:error:package android.support.v7.internal.widget.ActivityChooserModel不存在   obj \ Release \ android \ src \ mono \ android \ support \ v7 \ internal \ widget \ ActivityChooserModel_OnChooseActivityListenerImplementor.java:33:error:package android.support.v7.internal.widget不存在   2016-10-17T02:26:08.1053649Z私有原生布尔值n_onChooseActivity(android.support.v7.internal.widget.ActivityChooserModel p0,android.content.Intent p1);

    在我的Android项目中,我有:

    enter image description here

    最后,这是GitHub仓库的链接,您可以在其中找到代码: https://github.com/Lesthad/CIXamarinShowTest

    任何帮助都会非常感激。感谢和抱歉这篇长篇文章: - (

1 个答案:

答案 0 :(得分:2)

解决方案是您需要在构建定义的Xamarin.Android步骤中指定JDK版本。