【问题标题】:System.Drawing was not found when VersFx.Formaters.Text.Epub was installed安装 VersFx.Formaters.Text.Epub 时未找到 System.Drawing
【发布时间】:2017-03-13 00:52:29
【问题描述】:

我想使用来自VersFx.Formaters.Text.Epub 程序集的EpubReader。我想将EpubBook 加载到我的平台特定代码中,然后将我自己的Book 类放入共享代码中。它看起来像这样:

public interface IEpubReader
    {
        Book ReadEpub(string bookPath);
    }

public class Book
    {
        public string Title { get; set; }
        public string Author { get; set; }
        public IEnumerable<string> Chapters { get; set; }
    }

public class DroidEpubReader : IEpubReader
    {
        public Book ReadEpub(string bookPath)
        {
            EpubBook epubBook = EpubReader.ReadBook(bookPath);
            Book book = new Book
            {
                Title = epubBook.Title,
                Author = epubBook.Author,
                Chapters = epubBook.Chapters.First().SubChapters.Select(sc => sc.Title.ToString())
            };

            return book;
        }
    }

BookIEpubReader 来自共享代码。

我在构建解决方案时遇到错误。

严重性代码描述项目文件行抑制状态 加载程序集时出现错误异常: System.IO.FileNotFoundException:无法加载程序集 'System.Drawing,版本=4.0.0.0,文化=中性, PublicKeyToken=b03f5f7f11d50a3a'。也许它在 Mono 中不存在 安卓配置文件?文件名:“System.Drawing.dll”在 Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference 参考,ReaderParameters 参数)在 Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(ICollection`1 程序集,AssemblyDefinition 程序集,布尔顶级)在 Xamarin.Android.Tasks.ResolveAssemblies.Execute() EpubReaderXamarinForms.Droid

我想手动添加 System.Drawing 到我的 Android 项目。我在 COM 中发现了两个类似的程序集(System.Drawing.dll 2.4 版和 System.Drawing.dll 2.0 版),但又遇到了一个错误。

请你解释一下我做错了什么?

我的package.config的共享代码:

 <?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Xamarin.Forms" version="2.3.3.193" targetFramework="portable45-net45+win8+wp8+wpa81" />
</packages>

Android 项目的package.config

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="VersFx.Formats.Text.Epub" version="1.0.2" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.Design" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.v4" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.v7.AppCompat" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.v7.CardView" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.v7.MediaRouter" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.v7.RecyclerView" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Forms" version="2.3.3.193" targetFramework="monoandroid60" />
</packages>

【问题讨论】:

    标签: c# android xamarin xamarin.forms


    【解决方案1】:

    System.Drawing 高度依赖 Win32,它只存在于 Windows 中。除了几个简单的类之外,它在 Xamarin 中不可用。

    您可能能够修改库的源以删除对 System.Drawing 的依赖,或者将其替换为跨平台绘图库,如 SkiaSharp。

    【讨论】:

    • 谢谢。我正在考虑重写这个库的源代码。
    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    • 2015-06-05
    • 2016-03-01
    相关资源
    最近更新 更多