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

使用MonoDevelop或Cake/XBuild编译解决方案会产生不同的结果,mono,monodevelop,xbuild,cakebuild,Mono,Monodevelop,Xbuild,Cakebuild,在使用MonoDevelop 5.1.0编译解决方案时,我得到了一种不同的行为,并且通过脚本调用实现了相同的解决方案 使用MonoDevelop编译解决方案时,一切正常。 通过我的cake脚本进行编译时,出现以下错误: 类型System.IDisposable'是在不可用的程序集中定义的 参考。考虑向汇编系统添加一个引用。运行时, 版本=4.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a' 为什么会有如此不同的行为 蛋糕剧本没有做任何花哨的事。它只是使用

在使用MonoDevelop 5.1.0编译解决方案时,我得到了一种不同的行为,并且通过脚本调用实现了相同的解决方案

使用MonoDevelop编译解决方案时,一切正常。 通过我的cake脚本进行编译时,出现以下错误:

类型System.IDisposable'是在不可用的程序集中定义的 参考。考虑向汇编系统添加一个引用。运行时, 版本=4.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a'

为什么会有如此不同的行为

蛋糕剧本没有做任何花哨的事。它只是使用完全相同的解决方案调用XBuild

public static void MDToolBuild(
       FilePath projectOrSolutionFile,
       Action<MDToolSettings> settings
)
我在Fedora 23上的环境:


您可以尝试使用为提供别名的加载项,而不是使用XBuild别名,该加载项使用不带GUI的Monodevelop来编译您的解决方案

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

你的变通方法非常有效。万分感谢。尽管如此,我还是很想知道为什么我对XBuild有这样的行为。你能直接测试你的XBuild命令,这样你就可以从等式中去掉蛋糕了吗?
#addin "Cake.Xamarin"

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