使用MonoDevelop或Cake / XBuild编译解决方案会产生不同的结果

时间:2016-06-02 11:02:13

标签: mono monodevelop xbuild cakebuild

在使用 MonoDevelop 5.1.0 编译解决方案时,我通过调用CakeXBuild脚本获得了相同的解决方案。

使用MonoDevelop编译解决方案时,一切正常。 通过我的蛋糕脚本编译时,我收到以下错误:

  

类型System.IDisposable'在一个不是的程序集中定义   引用。考虑添加对程序集System.Runtime的引用,   Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'

这种不同行为可能是什么原因?

蛋糕脚本没有任何花哨的东西。它只是用完全相同的解决方案调用XBuild。

我的环境(在Fedora 23上):

mono --version
Mono JIT compiler version 4.4.0 (Stable 4.4.0.142/81f38a9 Thu Apr 28 09:14:25 EDT 2016)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    TLS:           __thread
    SIGSEGV:       altstack
    Notifications: epoll
    Architecture:  amd64
    Disabled:      none
    Misc:          softdebug 
    LLVM:          supported, not enabled.
    GC:            sgen

XBuild Version:
XBuild Engine Version 14.0
Mono, Version 4.4.0.0
Copyright (C) 2005-2013 Various Mono authors

1 个答案:

答案 0 :(得分:4)

您可以尝试不使用XBuild别名来使用Cake.Xamarin addin,它为MDToolBuild提供mdtool别名,它使用Monodevelop而不使用GUI来编译您的解决方案。

public static void MDToolBuild(
       FilePath projectOrSolutionFile,
       Action<MDToolSettings> settings
)

Cake脚本中的示例用法:

#addin "Cake.Xamarin"

MDToolBuild(
   "./mySolution.sln",
   settings=> { settings.Configuration = "Debug"; },
);