【问题标题】:Portable class library - Reference to type 'MarshalByRefObject' claims it is defined in 'mscorlib', but it could not be found可移植类库 - 对“MarshalByRefObject”类型的引用声称它在“mscorlib”中定义,但找不到
【发布时间】:2017-02-09 09:21:16
【问题描述】:

我有一个普通的类库,其中包含一个将字节数组转换为图像的函数。

现在我已经删除了那个类库并创建了一个同名的可移植类库,现在代码似乎不再工作了,并且在“FromStream”函数上给了我一个错误:

对“MarshalByRefObject”类型的引用声称它在“mscorlib”中定义,但找不到

using System;
using System.Drawing;
using System.IO;

namespace App.Converters
{
    public static class Converter
    {
        public static Image ToImage(this byte[] byteArray)
        {
            try
            {
                return Image.FromStream(new MemoryStream(byteArray));
            }
            catch
            {
                throw new FormatException("Data is not an image");
            }
        }
    }
}

我的项目目标是:

  • .NET Framework 4.5
  • ASP.NET Core 1.0
  • Windows 8
  • Windows Phone 8.1
  • Xamarin.Android
  • Xamarin.iOS
  • Xamarin.iOS(经典)

这是因为我的目标框架之一不支持“某事”吗?那为什么VS让我使用并自动完成显示呢?

【问题讨论】:

    标签: c# .net portable-class-library system.drawing


    【解决方案1】:
     using System.Drawing;
    

    这可能与您收到此错误消息的操作更相关。您使用大锤来识别 using 指令。我们必须猜测它,但您可能已经完成的一种方法是使用 Project > Add Reference > Browse button > 从 c:\windows\microsoft.net 子目录中选择 System.Drawing.dll。 似乎工作得很好。

    大概您在 mscorlib.dll 上使用了类似的大锤来识别 MarshalByRefObject。尽管这要困难得多,因为 IDE 可以判断出它是无效的,但 mscorlib.dll 已经包含在参考集中。也许你手动编辑了项目文件,很难猜到。

    不要使用大锤。

    PCL 项目已经引用了所有您可能使用的框架程序集。它们不会单独列在项目的“引用”节点中,而是折叠在单个“.NET”节点中。

    这样做并不是为了让您的生活变得悲惨,它可以确保您不会意外使用在您选择的目标之一上不可用的课程。在您花费数周时间编写代码、在您的开发机器上对其进行完美测试并现在尝试在手机上运行它之后,让您免于在最糟糕的时间发现问题。卡布姆,不能工作。上一条小溪,没有桨,浪费了几个星期。

    System.Drawing 仅在桌面计算机上可用。同样,MBRO 仅适用于 CLR 的完整版本,而不是 .NETCore 版本。行不通,MBRO 需要远程处理,这是从 .NETCore 中删除以使其成为“核心”的功能。你必须找到另一种方法来完成你想做的事情。没有指导,问题不够详细。

    【讨论】:

    • 我觉得奇怪的是我可以创建一个图形对象,但是只要我在它上面输入一个方法调用,它就会在 VS 中显示这个错误。我从没想过它会在 android 等设备上得到支持,但被给予了错误的希望,因为它首先让我创建 Graphics 对象。我喜欢这个答案,24 小时奖励赏金。
    猜你喜欢
    • 1970-01-01
    • 2021-09-08
    • 2018-11-23
    • 2018-09-12
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多