gpt4 book ai didi

c# - 可移植类库 - 对类型 'MarshalByRefObject' 的引用声称它在 'mscorlib' 中定义,但找不到

转载 作者:太空宇宙 更新时间:2023-11-03 23:03:36 25 4
gpt4 key购买 nike

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

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

Reference to type 'MarshalByRefObject' claims it is defined in 'mscorlib', but it could not be found

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 核心 1.0
  • Windows 8
  • Windows 手机 8.1
  • Xamarin.Android
  • Xamarin.iOS
  • Xamarin.iOS(经典)

这是因为我的目标框架之一不支持“某物”吗?那为什么VS让我用自动补全显示呢?

最佳答案

 using System.Drawing;

这可能与您为获得此错误消息所做的操作更相关。您使用大锤来识别 using 指令。我们必须对其进行猜测,但您可能已经完成的一种方法是使用项目 > 添加引用 > 浏览按钮 > 从 c:\windows\microsoft.net 子目录中选择 System.Drawing.dll。 似乎工作得很好。

而且您可能在 mscorlib.dll 上使用了类似的大锤来识别 MarshalByRefObject。虽然这很难做到,因为 IDE 可以告诉它无效,但 mscorlib.dll 已经包含在引用集中。也许您手动编辑了项目文件,这很难猜到。

不要使用大锤。

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

这样做并不是为了让你的生活变得悲惨,它确保你不会意外地使用你选择的目标之一不可用的类。在您花费数周时间编写代码、在您的开发机器上对其进行完美测试并尝试在手机上运行它之后,避免在最糟糕的时候发现。 Kaboom,不能工作。在一条小溪上,没有桨,几周就没了。

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

关于c# - 可移植类库 - 对类型 'MarshalByRefObject' 的引用声称它在 'mscorlib' 中定义,但找不到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42132645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com