【问题标题】:Is it possible to compile Xamarin for Android from Linux CLI?是否可以从 Linux CLI 为 Android 编译 Xamarin?
【发布时间】:2016-08-24 17:30:32
【问题描述】:

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

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

【问题讨论】:

    标签: android xamarin xamarin.android


    【解决方案1】:

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

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

    注意:在设置、环境、错误等方面,您需要自己处理...(但开源代码是在 Ubuntu 构建服务器上构建的,详情请参阅 Github 存储库)

    Github 仓库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

    【讨论】:

      【解决方案2】:

      是的,这是可能的,不过一旦出现 .net 5 就会容易得多。

      使用此 docker 图像(直接或获取灵感):https://hub.docker.com/r/vonproteus/xamarin-android-docker

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

      【讨论】:

        【解决方案3】:

        我在 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.

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-10-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多