我想用 Xamarin 和 MonoTouch 用 C# 编写一个 iOS 应用程序。我想使用 Vim 和 Z shell 而不是 Xamarin Studio。但是,我找不到太多关于如何从命令行构建的文档。
该mtouch
命令的文档说您必须将程序集作为参数传递,但是如何创建该程序集?
Mono 提供的命令行编译器是mcs
、gmcs
和dmcs
. 对于 Mono 2.10.x 及更早版本,这些分别适用于 C# 1.0、C# 2.0 和 C# 4.0;对于 Mono 3.0.x,mcs
默认为最新版本,您必须使用-langversion
和-sdk
选项选择较早的语言/运行时版本。The dmcs
and gmcs
commands in 3.0.x are scripts that call mcs
with the appropriate -sdk
option.
我对 Xamarin.iOS 不够熟悉,无法知道库的布局方式,但该-lib
选项允许您告诉编译器包含.dll
程序集的其他目录,并-r
允许您引用特定程序集。编译器默认会构建一个.exe
程序集;使用-target:library
or-t:library
来建造一个.dll
。该-help
选项将为您提供所有选项的列表。
您可以从命令行使用您喜欢的任何构建系统。如果您需要处理 MSBuild 项目文件,那么xbuild
可以处理它们,但是make
,也可以正常工作cmake
,scons
并且可能比.sln
在 Vim 中编辑文件更可取。如果依赖关系不明显,并且如果您有一个包含多个程序集的复杂项目(编译器足够快,您可以重新编译小型单程序集项目的所有内容),您可能仍然需要自己找出依赖关系。
请注意,我自己并没有为此使用 Mono,而是主要用于 OS X/Linux 上的命令行项目,因此上面可能缺少一些与为 iOS 构建 mtouch-ready 程序集相关的微妙细节。