MonoDevelop中的VS项目迁移错误

本文关键字:迁移 错误 项目 VS 中的 MonoDevelop | 更新日期: 2023-09-27 17:57:42

我正在尝试将VS2010项目导入MonoDevelop。我把它更新到了4.3.0版本,所以我得到了普通的

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

作为警告。然而,我遇到了这个错误:

"SlkRepair/SlkRepair/SlkLib.cs(28,28):错误CS110:"SlkRepair.RegexEx.ContainsAny(此字符串,params char[])":扩展方法需要"System.Runtime.CompilerServices.ExtensionAttribute"类型可用。是否缺少程序集引用?(CS110)(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.DataSetExtensions
  • System.Xml
  • System.Xml.Linq

尝试在"编辑引用"中添加引用没有帮助——我找不到它。有人能解释一下参考资料是什么吗?我应该如何添加?我是MonoDevelop的新手。

MonoDevelop中的VS项目迁移错误

在Visual Studio方面首先需要解决的两个问题是,

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

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