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

如何激活Xamarin.Android以在CI服务器上使用?,xamarin.android,xamarin,Xamarin.android,Xamarin,我的公司拥有几个Xamarin.Android的商业许可证,我们想在我们的CI服务器上使用它。然而,似乎我需要在我的CI服务器上安装完整的Xamarin套件,包括VisualStudioPro,以使其正常工作。我的问题是,使用香草Xamarin.Android软件包,我如何激活它 似乎自行安装它会添加要使用的Xamarin.Android工具和库,但我找不到激活它的方法,因此当我尝试使用MSBuild进行构建时,构建失败,并出现以下错误: C:\Program Files(x86)\MSBuil

我的公司拥有几个Xamarin.Android的商业许可证,我们想在我们的CI服务器上使用它。然而,似乎我需要在我的CI服务器上安装完整的Xamarin套件,包括VisualStudioPro,以使其正常工作。我的问题是,使用香草Xamarin.Android软件包,我如何激活它

似乎自行安装它会添加要使用的Xamarin.Android工具和库,但我找不到激活它的方法,因此当我尝试使用MSBuild进行构建时,构建失败,并出现以下错误:

C:\Program Files(x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(299,2):错误XA9008:从命令行生成需要ÿBusinessÿ许可证

现在,通过谷歌搜索,我发现激活工具名为“mandroid.exe”,可以在C:\Program Files(x86)\MSBuild\Xamarin\Android中找到,尽管我也在64位程序文件中找到了对它的引用

不幸的是,我找不到关于这个工具的任何合适的文档。每次我发现有人讨论这个问题时,Xamarin的人就会跳进来说“联系”support@xamarin.com". 过了一段时间,我这样做了,但两个工作日后,仍然没有回应,我还有最后期限要赶,所以我认为公开记录这一过程可能对所有相关人员都有帮助

我发现的最好的东西来自引用此调用的:

mandroid.exe--激活--名称“name”--公司“company”--电子邮件“email”--电话“phone”--代码“激活码”

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

.mandroid.exe–activate–activation name=“name”–activation phone=“phone”–activation company=“company”–activation code=“code”–activation email=“email”

在这里,我尝试了使用两种调用对我的帐户数据进行多种排列,使用Xamarin商店上的激活码。不管发生什么情况,都会发生以下错误:

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

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

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


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

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

“团队中必须安装Visual Studio Professional(或更高版本) 基础服务器以及XAMARIN的授权副本。 Xamarin.iOS支持Android和iOS手机的开发 通过Team Foundation Server的应用程序“

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


我可能错了,所以最好的方法是联系Xamarin支持部门,

更新-恐怕下面的步骤不再有效。Xamarin已更新了他们的激活系统,以通过不同的方法激活新版本

最后,我不得不安装Xamarin Studio作为Chef配置的一部分,并指示管理员手动激活该软件作为创建新构建节点的一部分。我没有运气尝试反向工程修复,如果我这样做了,它可能会再次崩溃


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

--activate
动词将对Xamarin的服务器执行在线激活,因此我仍然不确定在没有internet连接的情况下您将如何进行激活

以下是我是如何做到这一点的:

mandroid.exe-v--activate--activation name“(名称)”--activation phone“(电话”---activation email“(电子邮件)”--activation company”(公司)--activation code”(代码)

我不确定
-v
开关的意义,但如果出现问题,它可能会输出调试信息

您必须完全按照上的指定输入所有信息-选择一个许可证并选择“激活问题?”。但是,您需要在
--激活名称
参数中输入被许可人名称,即拥有许可证的用户,该参数必须与
--激活代码
参数相对应

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

PS> & .\mandroid.exe --activated
PS> $LastExitCode
0
您还可以重新加载“产品”页面,您应该看到所选用户的许可证已向其注册了一台新计算机

这确实会占用另一个激活,但如果您通过电子邮件发送给支持团队,您可以签署构建服务器协议,然后我假设他们可以为您的构建节点设置其他激活


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

我真的希望不是因为这太可怕。不过,感谢你的发现,我似乎错过了这个链接。荒谬的是,一个人必须安装VS和Xamarin才能构建一个项目诸如此类。这些开发人员需要从Adobe那里吸取教训,在那里,我可以通过提供it类和SWC资源文件,完全在Flash IDE之外使用免费编译器构建Flex应用程序。@Triynko,但Flex已经死了,而Xamarin仍然存在。Adobe足够丰富,甚至可以接受某些产品