4

我想用 Xamarin 和 MonoTouch 用 C# 编写一个 iOS 应用程序。我想使用 Vim 和 Z shell 而不是 Xamarin Studio。但是,我找不到太多关于如何从命令行构建的文档。

mtouch命令的文档说您必须将程序集作为参数传递,但是如何创建该程序集?

4

1 回答 1

5

Mono 提供的命令行编译器是mcsgmcsdmcs. 对于 Mono 2.10.x 及更早版本,这些分别适用于 C# 1.0、C# 2.0 和 C# 4.0;对于 Mono 3.0.x,mcs默认为最新版本,您必须使用-langversion-sdk选项选择较早的语言/运行时版本。The dmcsand gmcscommands in 3.0.x are scripts that call mcswith the appropriate -sdkoption.

我对 Xamarin.iOS 不够熟悉,无法知道库的布局方式,但该-lib选项允许您告诉编译器包含.dll程序集的其他目录,并-r允许您引用特定程序集。编译器默认会构建一个.exe程序集;使用-target:libraryor-t:library来建造一个.dll。该-help选项将为您提供所有选项的列表。

您可以从命令行使用您喜欢的任何构建系统。如果您需要处理 MSBuild 项目文件,那么xbuild可以处理它们,但是make,也可以正常工作cmakescons并且可能比.sln在 Vim 中编辑文件更可取。如果依赖关系不明显,并且如果您有一个包含多个程序集的复杂项目(编译器足够快,您可以重新编译小型单程序集项目的所有内容),您可能仍然需要自己找出依赖关系。

请注意,我自己并没有为此使用 Mono,而是主要用于 OS X/Linux 上的命令行项目,因此上面可能缺少一些与为 iOS 构建 mtouch-ready 程序集相关的微妙细节。

于 2013-07-02T23:29:15.837 回答