首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fody不嵌入SkiaSharp DLL

Fody不嵌入SkiaSharp DLL
EN

Stack Overflow用户
提问于 2018-10-09 20:09:53
回答 2查看 2.6K关注 0票数 4

我创建了一个解决方案,该解决方案使用Costura.Fody nuget包将引用的程序集合并为嵌入式资源。我想要这样做,这样我就可以为我的应用程序创建一个单独的exe。在我添加了对SkiaSharp (特别是nuget包、SkiaSharp和SkiaSharp.Svg)的引用之前,这是一段很好的工作。libSkiaSharp.dll不是嵌入的,而是内置在启动项目文件夹中的,除非我将dll保存在同一个文件夹中,否则我无法单独运行程序exe。有办法解决这个问题吗?

下面是再现这些信息的步骤:

  1. 创建一个新的WPF项目
  2. 添加Costura.Fody和Fody包。
  3. 添加一个名为FodyWeavers.xml的文件,其内容设置如下:
代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<Weavers>
  <Costura/>
</Weavers> 
  1. 在bin/Debug文件夹中生成并运行exe文件。注意,即使将exe移动到新位置,程序也会启动。
  2. 添加SkiaSharp和SkiaSharp.Svg nuget包。
  3. 获取一个svg文件并将其添加到您的项目目录
  4. 将以下代码添加到MainWindow构造函数中: var svg =新SKSvg();svg.Load("image.svg");SKCanvas画布=新SKCanvas(新SKBitmap());canvas.DrawPicture(svg.Picture);
  5. 注意,如果您复制图像文件和exe并将其放置在另一个目录中,则exe将不会启动。这是因为它找不到libSkiaSharp.dll。
EN

回答 2

Stack Overflow用户

发布于 2018-10-10 20:53:14

在项目中创建一个Costura32和/或Costura64文件夹。根据libSkiaSharp.dll的位数将其复制到适当的目录中。Costura将自动从这些目录中解压缩和加载本机二进制文件。

票数 3
EN

Stack Overflow用户

发布于 2018-11-12 14:52:32

你试过以下几种方法:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<Weavers>
  <Costura>
    <IncludeAssemblies>
        libSkiaSharp
    </IncludeAssemblies>
  </Costura>
</Weavers>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52728614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档