Skip to content

[BUG]: MSIX packaging fails due to duplicate ggml-cpu.dll from CPU backend #1305

@peter2malhado

Description

@peter2malhado

Description

When creating an MSIX package for a Windows application that uses LLamaSharp, the build fails with the following error:

Payload contains two or more files with the same destination path 'ggml-cpu.dll'. Source files:
C:\Users\usr.nuget\packages\llamasharp.backend.cpu\0.25.0\runtimes\win-x64\native\avx\ggml-cpu.dll
C:\Users\usr.nuget\packages\llamasharp.backend.cpu\0.25.0\runtimes\win-x64\native\avx2\ggml-cpu.dll
C:\Users\usr.nuget\packages\llamasharp.backend.cpu\0.25.0\runtimes\win-x64\native\avx512\ggml-cpu.dll
C:\Users\usr.nuget\packages\llamasharp.backend.cpu\0.25.0\runtimes\win-x64\native\noavx\ggml-cpu.dll

During normal build and runtime, this works correctly, as the appropriate backend is selected at runtime.

However, when generating an MSIX package, the MSIX tooling attempts to include all native DLLs, and since they all share the same filename (ggml-cpu.dll) and destination path, the packaging process fails.

Reproduction Steps

Create a Windows or MAUI Windows app

Reference:

PackageReference Include="LLamaSharp" Version="0.25.0" />
PackageReference Include="LLamaSharp.Backend.Cpu" Version="0.25.0" />

Build and run the app → works correctly

Attempt to create an MSIX package

Packaging fails with duplicate file path error

Environment & Configuration

  • Operating system: windows 11
  • .NET runtime version: net9.0
  • LLamaSharp version: 0.25.0
  • CPU & GPU device: i7-1185g7

Known Workarounds

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions