MonoDevelop中的VS项目迁移错误

时间:2014-04-09 07:03:27

标签: c# .net mono

我正在尝试将VS2010项目导入MonoDevelop。我将其更新到4.3.0版本,所以我很平常

  

/usr/lib/mono/4.0/Microsoft.Common.targets:警告:无法找到与目标框架名字对象'.NETFramework,Version = v4.0,Profile = Client'对应的框架。框架程序集引用将从GAC解析,这可能不是预期的行为。 (SlkRepair)

作为警告。但是,我遇到了这个错误:

  

'SlkRepair / SlkRepair / SlkLib.cs(28,28):错误CS1110:'SlkRepair.RegexEx.ContainsAny(this string,params char [])':扩展方法需要'System.Runtime.CompilerServices.ExtensionAttribute'类型可用。你错过了装配参考吗? (CS1110)(SlkRepair)

ContainsAny功能的代码:

public static class RegexEx
{
    public static bool ContainsAny(this string s, params char[] chars)
    {
        bool result = false;
        foreach (char c in chars)
        {
            result |= s.Contains(c);
            if (result)
                break;
        }
        return result;
    }
}

我的项目有这样的汇编参考:

  • 系统
  • System.Core程序
  • System.Data
  • System.Data.DataSetExtensions
  • 的System.Xml
  • System.Xml.Linq的

尝试在编辑引用中添加引用无济于事 - 我找不到它。 任何人都可以解释什么参考,我应该如何添加?我是MonoDevelop的新手。

1 个答案:

答案 0 :(得分:2)

首先需要在Visual Studio端修复的两个问题是,

  1. Mono不支持客户端配置文件。因此,请确保在Visual Studio中使用完整配置文件而不是客户端配置文件。

  2. 您使用的Mono运行时(不是MonoDevelop)似乎太旧而无法支持.NET 4.5,因此发生ExtensionAttribute异常。你必须至少使用Mono 3.2.8。要查看您拥有的Mono版本,只需在终端运行mono --version即可。如果不使用任何4.5功能,也可以将项目降级到.NET 4.