我有一个单声道android项目。我可以使用monodevelop来构建我项目的apk。但是我想用可以生成.apk文件的目标编写一个构建文件(就像我们使用ANT一样)。
请指出正确的方向。
我已经发现我们需要使用mandroid.exe从.dll生成.apk。 日志显示有一个名为_Manddroid的目标,monodevelop的构建工具运行。该目标依次按照命令
运行C:\Program Files\MSBuild\Novell\mandroid.exe -v --nosign --sdk-dir="C:\Android\android-sdk" --builddir="C:\Users\Sikha\Documents\Projects\helloShikha\helloShikha\obj\Debug\android" --framework-dir="C:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v2.2" --framework-dir="C:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0" -S="C:\Users\Sikha\Documents\Projects\helloShikha\helloShikha\obj\Debug\res" --package="helloShikha.helloShikha" --nolink --abi="armeabi" --java-sdk-dir="C:\Program Files\Java\jdk1.6.0_30" --debug --sdk-platform="8" "C:\Users\Sikha\Documents\Projects\helloShikha\helloShikha\bin\Debug\helloShikha.dll" "C:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v2.2\Mono.Android.dll" "C:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\mscorlib.dll" "C:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\System.Core.dll" "C:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\System.dll" "C:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\System.Xml.dll"
当我尝试在cmd上复制粘贴上面的命令时没有任何反应。知道我在这里缺少什么吗?
答案 0 :(得分:4)
我使用了以下命令,它为我生成了.apk文件。
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe myproject.csproj /t:Package
我尝试使用.sln文件但收到错误:目标包在项目中不存在。 我打开了myproject.csproj文件并发现该文件导入Novell.MomoDroid.CSharp.Targets,后者又导入了Novell.MonoDroid.Common.Targets
目标“包”存在于Novell.MonoDroid.Common.Targets文件中。
答案 1 :(得分:1)
为什么要编写替代目标? Mono for Android项目文件是基于MSBuild的,MSBuild是微软相当于ant的。这意味着csproj文件已经完全可扩展和可自定义,并且可以使用命令行MSBuild工具构建:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe YourSolution.sln