我正在尝试使用xbuild(在Mac上,显然)构建一个MonoTouch项目。这是我的xbuild项目:
<Project DefaultTargets="Application" ToolsVersion="3.5" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ApplicationProjectFilePath>..\TestApp\TestApp.csproj</ApplicationProjectFilePath>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<MonoTouchReferencePath>/Developer/MonoTouch/usr/lib/mono/2.1/</MonoTouchReferencePath>
</PropertyGroup>
<Target Name="Application">
<MSBuild Projects="$(ApplicationProjectFilePath)" Targets="Rebuild" Properties="Configuration=AdHoc;Platform=iPhone;ReferencePath=$(MonoTouchReferencePath)" ToolsVersion="3.5"/>
</Target>
</Project>
当我运行时,我收到以下警告:
/Library/Frameworks/Mono.framework/Versions/2.6.7/lib/mono/3.5/Microsoft.Common.targets: warning : Found a conflict between : 'System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' and 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. Using 'System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' reference.
我怎样才能拥有框架的xbuild参考v3.5?正如您将从脚本中看到的那样,我尝试了许多方法,但似乎都没有。
[另外,我不知道为什么我必须明确引用monotouch.dll库 - 因为它在项目文件(TestApp.csproj)中被引用。对此的任何评论也将不胜感激。]
答案 0 :(得分:1)
MonoTouch使用Silverlight框架的超集,而不是3.5,并且MonoTouch及其框架版本目前没有xbuild目标。实现这一点需要覆盖框架程序集解析的自定义目标,如Silverlight和MonoDroid目标。
目前,我建议您使用MonoDevelop命令行工具的构建命令mdtool,即。
/Applications/MonoDevelop.app/Contents/MacOS/mdtool build