`

MSBuild命令行编译Xamarin 项目

阅读更多
Xamarin 平台:

  • C# language – 使用C#语言构建应用程序
  • Mono .NET framework – 微软的跨平台框架
  • Compiler – 根据不同平台生成不同产品的编译器
  • IDE tools – 集成开发环境,包含了创建,构建,部署,编译等。


Compilation
我们先看一下官网的描述:

The C# source makes its way into a native app in very different ways on each platform:

iOS – C# is ahead-of-time (AOT) compiled to ARM assembly language. The .NET framework is included, with unused classes being stripped out during linking to reduce the application size. Apple does not allow runtime code generation on iOS, so some language features are not available (see Xamarin.iOS Limitations ).
Android – C# is compiled to IL and packaged with MonoVM + JIT’ing. Unused classes in the framework are stripped out during linking. The application runs side-by-side with Java/ART (Android runtime) and interacts with the native types via JNI (see Xamarin.Android Limitations ).
Windows Phone – C# is compiled to IL and executed by the built-in runtime, and does not require Xamarin tools. Designing Windows Phone applications following Xamarin’s guidance makes it simpler to re-use the code on iOS and Android.

先学习下Android的编译过程,可以对比下java语言开发的Android应用程序:

java开发的Android应用程序编译执行过程:
Java ---(JavaC)----> .class ---> JVM load class ---> main 方法执行

Xamarin平台C#应用程序编译执行过程:
C#(.cs文件) ---(C# complier)---> IL  --->  MonoVM + JIT execute

C# complier:
gmcs: compiler to target the 2.0 mscorlib.
smcs: compiler to target the 2.1 mscorlib, to build Moonlight applications.
dmcs: compiler to target the 4.0 mscorlib.

Xamarin 编译打包可执行程序:

先看一下官网介绍:
The Xamarin.Android build process is based on MSBuild, which is also the project file format used by Xamarin Studio and Visual Studio. * Ordinarily users will not need to edit the MSBuild files by hand* - the IDE creates fully functional projects and updates them with any changes made, and automatically invoke build targets as needed.

Advanced users may wish to do things not supported by the IDE's GUI, so the build process is customisable by editing the project file directly. This page documents only the Xamarin.Android-specific features and customizations - many more things are possible with the normal MSBuild items, properties and targets.

Windows 使用MSBuild, OS X 使用xbuild

Windows编译打包:
1. 确保环境已安装好 Visual Studio, Mono for Android SDK等
2. 在Xamarin创建的工程目录里找到后缀为csproj 的文件 XXX.csproj
3. 找到Mono提供的MSBuild.exe
备注:以下是我寻找到的方法:打开 XXX.csproj 寻找 <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />

在文件夹里搜索 Xamarin.Android.CSharp.targets 搜索到在MSBuild同级目录里找到了 C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe
4. 打开命令行,执行命令编译打包:
"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe"  /t:SignAndroidPackage Path\To\Your\XXX.csproj

打包完成后可以看到工程的\bin\Debug 文件夹下找到签名和未签名的apk
如果需要打包Release版本可以加上字段 /p:Configuration=Release

参考链接:
Xamarin guide
https://developer.xamarin.com/guides/cross-platform/application_fundamentals/building_cross_platform_applications/part_1_-_understanding_the_xamarin_mobile_platform/
https://developer.xamarin.com/guides/android/under_the_hood/build_process/

MSBuild 命令:
https://msdn.microsoft.com/en-us/library/ms164311.aspx
0
6
分享到:
评论

相关推荐

    zlib1.2.11VS2019命令行bld编译四种库.rar

    《使用VS2019命令行编译zlib1.2.11库的全面指南》 在软件开发中,zlib库是一个重要的组件,它提供了数据压缩和解压缩的功能,广泛应用于各种操作系统和编程语言中。对于Windows平台,利用Microsoft Visual Studio...

    使用.NET命令行编译器编译项目(如ASP.NET、C#等)

    例如,对于***项目,可以通过vbc.exe来编译项目,而对于C#项目,则使用csc.exe。这些编译器支持从项目文件(.csproj或.vbproj)中读取编译设置,这些项目文件包含了程序编译所需的所有设置。 项目文件中的小节包含...

    msbuild编译

    不用再去打开VS庞大的工程, 可以直接编译解决方案\项目(也就是命令行编译)

    Xamarin.Binding.Helpers:MSBuild任务可帮助Xamarin Android和iOS绑定项目

    Xamarin绑定助手Xamarin.Binding.Helpers是一个带有MSBuild任务和其他有用工具的NuGet程序包,可帮助简化绑定!如何使用呢? 如果您想立即使用可用的功能,本节适合您。 否则,请继续阅读以下内容,以了解其背景和上...

    xamarin.3.9.525破解版

    64位系统:替换C:\Program Files (x86)\MSBuild\Xamarin\Android\mandroid.exe 32位系统:替换C:\Program Files\MSBuild\Xamarin\Android\mandroid.exe iOS: 64位系统:替换C:\Program Files (x86)\MSBuild\Xamarin...

    demo of msbuild to compile without vs

    一个简单的msbuild命令行使用demo,可直接编译项目,无论是解决方案(sln)还是csproj或者vbproj。msbuild真的非常好,有了它就不用打开笨重的visual studio了!如需实际使用,请执行填写项目相对路径(绝对路径也可以)...

    Windows-SDK-8.0(解决MsBuild自动编译找不到 aximp.exe 或 Lc.exe 的问题)

    当MsBuild在尝试编译项目时,如果找不到aximp.exe或Lc.exe,可能是因为以下原因: 1. Windows SDK未正确安装:SDK中包含了这些工具,如果没有安装或安装不完整,MsBuild就无法找到它们。 2. 环境变量设置不正确:...

    Xamarin.Android 4.8.00013 & Xamarin.iOS 1.3.250.0 Patched Executable V2

    1. Copy "mandroid.exe" to "C:\Program Files (x86)\MSBuild\Xamarin\Android" (or "C:\Program Files\MSBuild\Xamarin\Android" if you are on a 32-bit operating system) 2. Copy "mtouch.exe" to "C:\Program ...

    破解 Xamarin for IOS 3.1.2280

    破解iOS:复制 mtouch.exe 到 %PROGRAMFILES(x86)%\MSBuild\Xamarin\iOS 在cmd命令里切换到%PROGRAMFILES(x86)%\MSBuild\Xamarin\iOS目录下运行以下命令进行注册: mtouch.exe --activate --activation-name=b4a...

    Xamarin.Android 4.8.00013 & Xamarin.iOS 1.3.250.0 Patched Executable

    1. Copy "mandroid.exe" to "C:\Program Files (x86)\MSBuild\Xamarin\Android" (or "C:\Program Files\MSBuild\Xamarin\Android" if you are on a 32-bit operating system) 2. Copy "mtouch.exe" to "C:\Program ...

    破解 Xamarin for Android 3.1.228

    破解Android:复制mandroid.exe 到 %PROGRAMFILES(x86)%\MSBuild\Xamarin\Android 在cmd命令里切换到%PROGRAMFILES(x86)%\MSBuild\Xamarin\Android目录下运行以下命令进行注册: mandroid.exe --activate --...

    微软 MSBuild 详细介绍

    当在Visual Studio中编译项目时,IDE实际上是在幕后调用MSBuild引擎执行这些XML脚本。 **与Visual Studio的关系** Visual Studio利用MSBuild来加载和构建托管项目,但MSBuild并不依赖于Visual Studio。从Visual ...

    Xamarin.Android 4.6.07004 Patched Executable

    1. Copy "mandroid.exe" to "C:\Program Files (x86)\MSBuild\Xamarin\Android\" (or "C:\Program Files\MSBuild\Xamarin\Android\" if you are on a 32-bit operating system) 2. Run keygen.exe to generate the ...

    MSBuild 12.0 14.0 17.0

    MSBuild作为一个XML驱动的构建系统,它的核心是项目文件(.csproj、.vbproj等),这些文件定义了构建过程的各个步骤,包括编译源代码、复制文件、执行单元测试等。通过使用MSBuild,开发者可以跨平台地构建和管理...

    用MSBUILD编译

    MSBUILD是Microsoft开发的一种构建工具,它被集成在.NET框架中,用于编译、打包和部署各种.NET应用程序,包括ASP.NET项目。MSBUILD基于XML格式的项目文件(.csproj, .vbproj等),允许开发者以高度可定制化的方式...

    Asp.net+Msbuild自动打包部署程序源码

    `Msbuild`通过XML格式的项目文件(`.csproj`或`.vbproj`)来定义构建过程,这些文件包含了编译、链接、复制文件、执行测试等一系列构建步骤。通过`Msbuild`,开发者可以自定义构建过程,实现自动化部署。 在本案例...

    DevExpress9.2.6编译角本

    标题提到的"DevExpress9.2.6编译脚本"是指针对DevExpress 9.2.6版本的一系列命令行编译指令,用于在不依赖Visual Studio集成开发环境(IDE)的情况下编译其源代码。 在.NET开发中,有时开发者可能需要在没有安装完整...

    msbuildtasks, MSBuild社区任务项目是MSBuild任务的开放源代码项目.zip

    msbuildtasks, MSBuild社区任务项目是MSBuild任务的开放源代码项目 MSBuild社区任务 MSBuild社区任务项目是MSBuild任务的开放源代码项目。 下载最新版本可以从 releases section下载。 ...

    MSBuild V12编译器、BuildTools_Full

    在Visual Studio中,MSBuild是核心的构建引擎,负责解析项目文件(如.csproj或.vbproj),执行编译过程,并管理依赖关系。 MSBuild V12对应的是Visual Studio 2013版本。在Visual Studio的不同版本中,MSBuild也会...

Global site tag (gtag.js) - Google Analytics