如何在CI服务器上激活Xamarin.Android?

时间:2014-04-28 08:22:18

标签: xamarin.android xamarin

我的公司拥有Xamarin.Android的几个营业执照,我们想在我们的CI服务器上使用它。但是,似乎我需要在我的CI服务器上安装完整的Xamarin套件,包括Visual Studio Pro才能完成这项工作。我的问题是,使用香草Xamarin.Android包,我该如何激活它?

似乎安装它自己添加了Xamarin.Android工具和库来构建,但没有办法激活它我可以找到,所以当我尝试使用MSBuild构建时,构建失败并出现此错误:

  

C:\ Program Files(x86)\ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets(299,2):错误XA9008:从命令行构建需要aÿBusinessÿLicense。

现在,经过一些谷歌搜索,我发现激活工具被称为“mandroid.exe”,可以在C:\ Program Files(x86)\ MSBuild \ Xamarin \ Android中找到 - 虽然我找到了参考这也是在64位程序文件中。

不幸的是,我找不到关于此工具的任何合适的文档。每当我找到有人讨论这个问题的帖子时,Xamarin的某个人就会跳进去说“联系support@xamarin.com”。过了一段时间我做了那个,但是两个工作日之后仍然没有回复,我有最后期限见面所以我认为对我们公开记录这个过程的每个人都有帮助。

我发现的最好的东西来自引用此调用的thread on the Xamarin mailing list

  

mandroid.exe --activate --name“NAME” - 公司“公司” - 电子邮件“电子邮件” - 电话“电话” - 代码“激活码”

我还发现了这个调用的另一种变体,如下所示:

  

。\ mandroid.exe -activate -activation-name =“NAME”-activation-phone =“PHONE”-activation-company =“COMPANY”-activation-code =“CODE”-activation-email =“EMAIL”

我在这里使用两次调用尝试了很多我的帐户数据排列 - 使用Xamarin商店中products page的激活码。无论如何,都会发生此错误:

  

\ mandroid.exe:monodroid:错误XA9997:提供完整激活的数据不完整

在“问题激活?”产品页面的一部分,它说:

  

在Mono for Android 1.0.21316及更高版本中,如果Visual Studio中的激活失败,则会在Documents文件夹中创建MfaActivation.dat文件。请在下面选择此文件。

也许有一些方法可以强制这个文件由mandroid.exe创建?这将非常有帮助。虽然我认为离线激活是实现此功能的唯一方法,但我会接受任何涉及上传MfaActivation.dat或以其他方式调用在线激活机制的答案。

2 个答案:

答案 0 :(得分:2)

更新 - 我担心以下步骤不再有效。 Xamarin已更新其激活系统,以便通过其他方法为新版本激活。

最后,我必须安装Xamarin Studio作为Chef配置的一部分,并指示管理员手动激活软件,作为创建新构建节点的一部分。我没有运气试图对一个修复进行逆向工程,如果我这样做,它可能会再次破坏。


事实证明我几乎把它纠正了。我指定的第二个调用实际上是调用此命令的正确方法,但--部分显然已被某些博客软件转换为令牌。

--activate动词将在Xamarin的服务器上执行在线激活,因此我仍然不确定如何在没有互联网连接的情况下执行此操作。

供参考,以下是我的工作方式:

  

mandroid.exe -v --activate --activation-name"(NAME)" --activation-phone"(PHONE _" --activation-email"(EMAIL)" --activation-company"(COMPANY)" - activation-代码"(代码)"

我不确定-v切换的重要性,但如果出现问题,可能会输出调试信息。

您必须完全按照products page中的规定输入所有信息 - 选择一个许可证并选择“#34;激活问题?"”。但是,您需要输入被许可方名称 - 即在--activation-name参数中拥有许可证的用户必须与--activation-code参数对应。

执行此操作后,您可以使用--activated开关调用mandroid,该开关将返回退出代码:

PS> & .\mandroid.exe --activated
PS> $LastExitCode
0

您还可以重新加载产品页面,并且您应该看到所选用户的许可证已在其上注册了新计算机。

这确实会耗尽另一个激活,但如果您通过电子邮件发送支持团队,则可以签署构建服务器协议,然后我假设他们可以为您的构建节点进行额外的激活。

遗憾的是,这并没有更好的记录,因为这浪费了我好几天的时间。希望这对有相同情况的其他人有所帮助。

答案 1 :(得分:0)

从Xamarin文档中,我们可以看到

http://docs.xamarin.com/guides/cross-platform/ci/configuring_tfs/

  

"必须在团队中安装Visual Studio Professional(或更高版本)   Foundation Server以及Xamarin.Android和。的许可副本   Xamarin.iOS支持Android和iOS移动开发   通过Team Foundation Server提交的应用程序。"

因此,我认为在所有情况下,您都需要安装并激活VS + Xamarin产品。

我可能错了,所以最好的方法是联系Xamarin支持,http://xamarin.com/support