繁体   English   中英

MonoTouch:自定义msbuild任务错误

[英]MonoTouch: custom msbuild task error

我正在尝试创建一个自定义任务以生成一个中间.csproj文件(原因请参见帖子。)

自定义任务位于当前引用.net 2.0程序集的dll中。

启用了MonoDevelop的实验性msbuild / xbuild设置,以强制MonoDevelop使用xbuild来构建项目。

我可以通过一个通过<UsingTask>元素引用任务的项目从命令行运行此命令:

~/src/All/workspace/XBuildExt/bin/Debug> mono
    /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/3.5/xbuild.exe
    ../../XBuildExtTest.targets 
    XBuild Engine Version 2.10.8.0
    Mono, Version 2.10.8.0
    Copyright (C) Marek Sieradzki 2005-2008, Novell 2008-2011.

    Build started 2/27/2012 4:26:15 PM.
    __________________________________________________
    Project "/Users/bright/src/All/workspace/XBuildExt/XBuildExtTest.targets"        
    (default target(s)):
        Target Build:
            It works!
    Done building project
    "/Users/bright/src/All/workspace/XBuildExt/XBuildExtTest.targets".

    Build succeeded.
         0 Warning(s)
         0 Error(s)

但是,MonoTouch项目中的相同代码因以下原因而失败:

Error initializing task GenerateMdToolProject: Cannot cast from 
    source type to destination type.
    Task "GenerateMdToolProject" execution -- FAILED

问题:

  1. 我发现这个旧帖子表明该问题已在Mono 2.8中修复。 MonoTouch也是如此吗?
  2. 我可以使用.net 3.5功能(尤其是System.Xml.Linq)对自定义任务进行编码吗?

MonoDevelop不使用xbuild来构建MonoTouch项目,而是使用自定义代码,该代码仅了解MSBuild项目文件的所有必要信息。

这意味着您添加到项目中的任何特殊MSBuild逻辑都不会被检测到。

有计划在将来对此进行更改,但是尚未做出任何决定(也没有时间表)。

我发现这个旧帖子表明该问题已在Mono 2.8中修复。

您误解了该帖子。 它说,此问题已在MonoDevelop (不是Mono)中于2010年9月上旬修复。因此, MonoDevelop的最新版本(如2.8.x)将具有您提到的修复程序。

关于Mono 2.8的注释是关于(原始发布问题的)另一个要求的,即具有支持.NET 4.0的运行时。 仅在使用Mono 2.8(或更高版本)时才具有此功能。 为MonoTouch开发需要Mono 2.10+,所以这对您来说不是问题。

MonoTouch也是如此吗?

这不适用于MonoTouch本身。 产品内部使用的Mono版本(无论如何基于2.10)不是您用来执行MonoDevelop或(如果您使用的) xbuild (与Mono兼容的xbuild )工具(除非您使用smcs编译器)。

IWO MonoTouch中包含的Mono零件应在模拟器或设备上使用,而不用于构建或执行工具。

我可以使用.net 3.5功能(尤其是System.Xml.Linq)对自定义任务进行编码吗?

是。 在拥有.NET 4.0运行时之后,您将(通过GAC)访问较新的程序集(包括System.Xml.Linq )以运行msbuild任务(只要正确设置了路径和环境变量,如果可以运行MonoDevelop)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM