c#-从命令行完全构建Monotouch应用程序捆绑的完整步骤是什么?

我想知道完整的步骤是要构建一个MonoTouch C#应用程序,该应用程序由包含xib文件的主应用程序程序集和一组可能还包含xib文件的库程序集组成.

我们出于各种我不愿讨论的原因,试图通过适当的MSBuild脚本(MonoTouch尚不支持)自动执行这些步骤,以在此关注该问题.

到目前为止,这是我想到的:

1)使用smcs编译每个程序集,例如

/Developer/MonoTouch/usr/bin/smcs /noconfig 
"/out:/Users/bright/src/MonoTouchAppWithLib/AppLib/bin/Debug/AppLib.dll
"/r:/Developer/MonoTouch/usr/lib/mono/2.1/System.dll"
"/r:/Developer/MonoTouch/usr/lib/mono/2.1/System.Xml.dll"
"/r:/Developer/MonoTouch/usr/lib/mono/2.1/System.Core.dll"
"/r:/Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll"
/nologo /warn:4 /debug:+ /debug:full /optimize- /codepage:utf8 
"/define:DEBUG"
/t:library "/Users/bright/src/MonoTouchAppWithLib/AppLib/Class1.cs"

2)编译接口定义:在每个程序集中的每个xib文件上运行ibtool,例如

/Developer/usr/bin/ibtool 
--errors --warnings --notices --output-format human-readable-text    
"/Users/bright/src/App/App/ViewController_iPhone.xib" 
--compile "/Users/bright/src/App/App/bin/Debug/App.app/ViewController_iPhone.nib"
--sdk "/Developer/Platforms/iPhoneSimulator.platform/Developer/
SDKs/iPhoneSimulator4.3.sdk"

3)编译为本机代码:

/Developer/MonoTouch/usr/bin/mtouch 
-sdkroot "/Applications/Xcode.app/Contents/Developer" 
-v --nomanifest --nosign -sim
"/Users/bright/src/App/App/bin/iPhoneSimulator/Debug/App.app" 
-r "/Users/bright/src/App/AppLib/bin/Debug/AppLib.dll" 
-r "/Developer/MonoTouch/usr/lib/mono/2.1/System.dll" 
-r "/Developer/MonoTouch/usr/lib/mono/2.1/System.Xml.dll" 
-r "/Developer/MonoTouch/usr/lib/mono/2.1/System.Core.dll" 
-r "/Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll" 
-debug -profiling -nolink -sdk "5.0"
"/Users/bright/src/App/App/bin/iPhoneSimulator/Debug/App.exe"

但是,尚不清楚如何执行以下操作(取自MonoDevelop的build输出窗口),以及执行的顺序:

1)提取嵌入的内容. MonoDevelop只是输出以下内容:

Extracted HelloWorldScreen_iPhone.nib from MtLib.dll
Extracted HelloWorldScreen_iPad.nib from MtLib.dll

2)更新应用程序清单:MonoDevelop构建输出窗口中没有给出命令行.

3)更新调试配置文件:MonoDevelop构建输出窗口中没有给出命令行.

4)更新调试设置文件:MonoDevelop构建输出窗口中没有给出命令行.

我还没有执行的其他步骤,例如应用程序签名和资源.

希望我们能在这里获得足够的信息来解决这个问题.

解决方法:

您可以从终端窗口或MSBuild任务中运行MonoDevelop随附的/Applications/MonoDevelop.app/Contents/MacOS/mdtool工具.例如.

/Applications/MonoDevelop.app/Contents/MacOS/mdtool -v build -t:Build "-c:Debug|iPhoneSimulator" /path/to/your/app.csproj

这将构建MonoTouch应用程序,包括上述所有步骤以及将来将添加的任何功能.

上一篇:npm报MSBUILD错误的解决办法


下一篇:Jenkins的使用(二)-------MSBuild