Я создал решение, которое использует пакет NuGet Costura.Fody для объединения ссылочных сборок в качестве встроенных ресурсов. Я хочу это, чтобы я мог создать единственный exe-файл для своего приложения. Некоторое время это отлично работало, пока я не добавил ссылку на SkiaSharp (в частности, на пакеты Nuget SkiaSharp и SkiaSharp.Svg). LibSkiaSharp.dll не встроен, а вместо этого встроен в папку запускаемого проекта, и я не могу запустить программу exe самостоятельно, если я не сохраню dll в той же папке. Есть ли способ исправить это?
Вот шаги, чтобы воспроизвести это:
1. Создайте новый проект WPF
2. Добавьте пакеты nuget Costura.Fody и Fody.
3. Добавьте файл FodyWeavers.xml с содержимым установите это:
<?xml version="1.0" encoding="utf-8" ?>
<Weavers>
<Costura/>
</Weavers>
- Создайте и запустите exe-файл в папке bin / Debug. Обратите внимание, что программа запустится, даже если вы переместите exe в новое место.
- Добавьте пакеты Nuget SkiaSharp и SkiaSharp.Svg.
- получить файл svg и добавить его в каталог проекта
добавьте следующий код в свой конструктор MainWindow:
var svg = новый SKSvg (); svg.Load ("image.svg"); SKCanvas canvas = новый SKCanvas (новый SKBitmap ()); canvas.DrawPicture (svg.Picture);
обратите внимание, что если вы скопируете файл изображения и exe и поместите в другой каталог, exe не запустится. Это происходит из-за того, что он не может найти libSkiaSharp.dll.