gpt4 book ai didi

c# - Fody Costura 不嵌入 SkiaSharp DLL

转载 作者:行者123 更新时间:2023-11-30 15:53:13 27 4
gpt4 key购买 nike

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

重现此步骤的步骤如下:

1.新建一个WPF项目
2. 添加 Costura.Fody 和 Fody nuget 包。
3. 添加一个名为 FodyWeavers.xml 的文件,内容设置为:

<?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 = new SKSvg();svg.Load("图像.svg");SKCanvas canvas = new SKCanvas(new SKBitmap());canvas.DrawPicture(svg.Picture);

  5. 请注意,如果您将图像文件和 exe 复制到另一个目录,则 exe 将不会启动。出现这种情况是因为找不到 libSkiaSharp.dll。

最佳答案

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

关于c# - Fody Costura 不嵌入 SkiaSharp DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52728614/

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