是否可以从Linux CLI编译Xamarin for Android?

时间:2016-08-24 17:30:32

标签: android xamarin xamarin.android

我们有一个Android应用程序,根据每个客户端使用自定义信息进行编译。 目前,我们的应用程序是使用Ionic构建的,因此当用户要求下载APK时,我们会相应地自动修改其源代码,编译应用程序并从客户端提供下载。 所有这些都是在Linux服务器上完成的。

我们现在想离开Ionic并使用Xamarin作为我们的新版本。但我们需要实现与之前相同的过程。 那么有可能从Linux编译Xamarin for Android就像我们ionic build android一样吗?

3 个答案:

答案 0 :(得分:2)

简短回答:是的,但是......

Linux不是Microsoft / Xamarin的分布式预打包版本的Xamarin.Android当前支持的环境,但使用开源代码,您可以构建Xamarin.Android Linux 上,然后在xabuild项目中使用Xamarin.Android

注意:您在设置,环境,错误等方面都是独立的...(但是开源代码是在Ubuntu构建服务器上构建的,有关详细信息,请参阅Github存储库)

Github repo https://github.com/xamarin/xamarin-android

参考:https://bugzilla.xamarin.com/show_bug.cgi?id=142

新参考:https://github.com/xamarin/xamarin-android/blob/master/Documentation/workflow/UsingYourBuild.md

旧参考:https://github.com/xamarin/xamarin-android#linux-build-notes

答案 1 :(得分:0)

是的,尽管一旦.net 5出现会容易得多。

(直接或出于启发目的)使用此docker映像:https://hub.docker.com/r/vonproteus/xamarin-android-docker

然后运行msbuild SolutionFile.sln /p:AndroidSdkDirectory=/android/sdk /restore

答案 2 :(得分:0)

我在Linux Mint机器上尝试过https://hub.docker.com/r/vonproteus/xamarin-android-docker

docker pull vonproteus/xamarin-android-docker

然后

sudo docker run -v ~/Downloads/Helloworld/:/test vonproteus/xamarin-android-docker msbuild test/Helloworld.Android/Helloworld.Android.csproj /restore /p:AndroidSdkDirectory=/android/sdk /p:AndroidBuildApplicationPackage=true

只需将~/Downloads/Helloworld/Helloworld.Android/Helloworld.Android.csproj更改为您的项目位置和Android项目名称。

-v ~/Downloads/Helloworld/:/test意味着我们正在docker内部创建一个虚拟目录,以便msbuild可以工作。如果您未设置虚拟路径,则msbuild会抛出MSBUILD : error MSB1009: Project file does not exist.