diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index c95f455..cf8b9c5 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -30,6 +30,7 @@ jobs:
       - run: dotnet build ./src/SkiaSharp.QrCode/ -c Debug
       - run: dotnet build ./samples/ManualGenerate/ -c Debug
       - run: dotnet build ./samples/SimpleGenerate/ -c Debug
+      # tests
       - run: dotnet test ./tests/SkiaSharp.QrCode.Tests.net31/ -c Debug
       - run: dotnet test ./tests/SkiaSharp.QrCode.Tests.net50/ -c Debug -p:CollectCoverage=true -p:CoverletOutputFormat=opencover
       - uses: codecov/codecov-action@v1
@@ -38,3 +39,11 @@ jobs:
           flags: unittests
           fail_ci_if_error: true
           verbose: true
+      # run
+      - run: dotnet run --project ./samples/ManualGenerate/ManualGenerate.csproj -c Debug -f netcoreapp3.1
+      - run: dotnet run --project ./samples/ManualGenerate/ManualGenerate.csproj -c Debug -f net5.0
+      - run: dotnet run --project ./samples/SimpleGenerate/SimpleGenerate.csproj -c Debug -f netcoreapp3.1
+      - run: dotnet run --project ./samples/SimpleGenerate/SimpleGenerate.csproj -c Debug -f net5.0
+      # todo: add LinuxRunSamples
+      # - run: docker-compose up
+      #   working-directory: ./samples/LinuxRunSamples
diff --git a/.gitignore b/.gitignore
index e8ae8d0..4de44a0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -361,3 +361,5 @@ MigrationBackup/
 # Fody - auto-generated XML schema
 FodyWeavers.xsd
 
+# custom
+output/
\ No newline at end of file
diff --git a/README.md b/README.md
index b61f28a..a6cbb4a 100644
--- a/README.md
+++ b/README.md
@@ -105,12 +105,72 @@ namespace SkiaQrCodeSampleConsole
 
 ```
 
-## Build
+## TIPS
 
+### Linux support
+
+You have 2 choice to run on Linux. If you don't need font operation, use `SkiaSharp.NativeAssets.Linux.NoDependencies`.
+
+1. Use `SkiaSharp.NativeAssets.Linux` package. In this case, you need to install `libfontconfig1` via apt or others.
+1. Use `SkiaSharp.NativeAssets.Linux.NoDependencies` 2.80.2 or above. In this case, you don't need `libfontconfig1`.
+
+SkiaSharp.NativeAssets.Linux.NoDependencies still can draw text, however can't search font cased on character or other fonts.
+
+> Detail: https://github.com/mono/SkiaSharp/issues/964#issuecomment-549385484
+
+**SkiaSharp.NativeAssets.Linux sample**
+
+```shell
+sudo apt update && apt install -y libfontconfig1
 ```
+
+```csproj
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="SkiaSharp.QrCode" Version="0.4.1" />
+    <PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="2.80.2" />
+  </ItemGroup>
+</Project>
+```
+
+**SkiaSharp.NativeAssets.Linux.NoDependencies sample**
+
+```csproj
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="SkiaSharp.QrCode" Version="0.4.1" />
+    <PackageReference Include="SkiaSharp.NativeAssets.Linux.NoDependencies" Version="2.80.2" />
+  </ItemGroup>
+</Project>
+```
+
+### Docker Build & Run
+
+Test Build lib.
+
+```shell
 docker build -t skiasharp.qrcode .
 ```
 
+Test Run on linux.
+
+```shell
+cd samples/LinuxRunSamples
+docker-compose up
+```
+
 ## License
 
 MIT
diff --git a/samples/LinuxRunSamples/3.1/BuildTest.csproj b/samples/LinuxRunSamples/3.1/BuildTest.csproj
new file mode 100644
index 0000000..032fc03
--- /dev/null
+++ b/samples/LinuxRunSamples/3.1/BuildTest.csproj
@@ -0,0 +1,19 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFrameworks>netcoreapp3.1;net5.0</TargetFrameworks>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="SkiaSharp.QrCode" Version="0.4.0" />
+    <!-- require libfontconfig1 https://github.com/mono/SkiaSharp/issues/964#issuecomment-549385484 -->
+    <PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="2.80.2" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <None Update="samples\*.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+  </ItemGroup>
+</Project>
diff --git a/samples/LinuxRunSamples/3.1/Program.cs b/samples/LinuxRunSamples/3.1/Program.cs
new file mode 100644
index 0000000..dad664e
--- /dev/null
+++ b/samples/LinuxRunSamples/3.1/Program.cs
@@ -0,0 +1,54 @@
+using SkiaSharp;
+using System;
+using System.IO;
+using SkiaSharp.QrCode;
+using SkiaSharp.QrCode.Models;
+
+namespace SkiaQrCodeSampleConsole
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            Directory.CreateDirectory("output");
+
+            var content = "testtesttest";
+            using (var generator = new QRCodeGenerator())
+            {
+                // Generate QrCode
+                var qr = generator.CreateQrCode(content, ECCLevel.L);
+
+                // Render to canvas
+                var info = new SKImageInfo(512, 512);
+                using (var surface = SKSurface.Create(info))
+                {
+                    var canvas = surface.Canvas;
+                    canvas.Render(qr, info.Width, info.Height);
+
+                    // gen color
+                    // yellow https://rgb.to/yellow
+                    canvas.Render(qr, info.Width, info.Height, SKColor.Empty, SKColor.FromHsl(60,100,50));
+                    // red https://rgb.to/red
+                    canvas.Render(qr, info.Width, info.Height, SKColor.Empty, SKColor.FromHsl(0, 100, 50));
+
+                    // gen icon
+                    var logo = File.ReadAllBytes("samples/test.png");
+                    var icon = new IconData
+                    {
+                        Icon = SKBitmap.Decode(logo),
+                        IconSizePercent = 10,
+                    };
+                    canvas.Render(qr, info.Width, info.Height, SKColor.Empty, SKColor.Parse("000000"), icon);
+
+                    // Output to Stream -> File
+                    using (var image = surface.Snapshot())
+                    using (var data = image.Encode(SKEncodedImageFormat.Png, 100))
+                    using (var stream = File.OpenWrite(@"output/hoge.png"))
+                    {
+                        data.SaveTo(stream);
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/samples/LinuxRunSamples/3.1/entrypoint.sh b/samples/LinuxRunSamples/3.1/entrypoint.sh
new file mode 100644
index 0000000..7d177b0
--- /dev/null
+++ b/samples/LinuxRunSamples/3.1/entrypoint.sh
@@ -0,0 +1,13 @@
+#!/bin/bash -ex
+
+FRAMEWORK=netcoreapp3.1
+while [ $# -gt 0 ]; do
+    case $1 in
+        -f) FRAMEWORK=$2; shift 2; ;;
+        *) shift ;;
+    esac
+done
+
+apt update && apt install -y libfontconfig1
+
+dotnet run --csproj BuildTest.csproj -f "${FRAMEWORK}"
diff --git a/samples/LinuxRunSamples/3.1/samples/test.png b/samples/LinuxRunSamples/3.1/samples/test.png
new file mode 100644
index 0000000..b8699ad
Binary files /dev/null and b/samples/LinuxRunSamples/3.1/samples/test.png differ
diff --git a/samples/LinuxRunSamples/3.1_nodep/BuildTest.csproj b/samples/LinuxRunSamples/3.1_nodep/BuildTest.csproj
new file mode 100644
index 0000000..e539ad5
--- /dev/null
+++ b/samples/LinuxRunSamples/3.1_nodep/BuildTest.csproj
@@ -0,0 +1,18 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFrameworks>netcoreapp3.1;net5.0</TargetFrameworks>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="SkiaSharp.QrCode" Version="0.4.0" />
+    <PackageReference Include="SkiaSharp.NativeAssets.Linux.NoDependencies" Version="2.80.2" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <None Update="samples\*.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+  </ItemGroup>
+</Project>
diff --git a/samples/LinuxRunSamples/3.1_nodep/Program.cs b/samples/LinuxRunSamples/3.1_nodep/Program.cs
new file mode 100644
index 0000000..dad664e
--- /dev/null
+++ b/samples/LinuxRunSamples/3.1_nodep/Program.cs
@@ -0,0 +1,54 @@
+using SkiaSharp;
+using System;
+using System.IO;
+using SkiaSharp.QrCode;
+using SkiaSharp.QrCode.Models;
+
+namespace SkiaQrCodeSampleConsole
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            Directory.CreateDirectory("output");
+
+            var content = "testtesttest";
+            using (var generator = new QRCodeGenerator())
+            {
+                // Generate QrCode
+                var qr = generator.CreateQrCode(content, ECCLevel.L);
+
+                // Render to canvas
+                var info = new SKImageInfo(512, 512);
+                using (var surface = SKSurface.Create(info))
+                {
+                    var canvas = surface.Canvas;
+                    canvas.Render(qr, info.Width, info.Height);
+
+                    // gen color
+                    // yellow https://rgb.to/yellow
+                    canvas.Render(qr, info.Width, info.Height, SKColor.Empty, SKColor.FromHsl(60,100,50));
+                    // red https://rgb.to/red
+                    canvas.Render(qr, info.Width, info.Height, SKColor.Empty, SKColor.FromHsl(0, 100, 50));
+
+                    // gen icon
+                    var logo = File.ReadAllBytes("samples/test.png");
+                    var icon = new IconData
+                    {
+                        Icon = SKBitmap.Decode(logo),
+                        IconSizePercent = 10,
+                    };
+                    canvas.Render(qr, info.Width, info.Height, SKColor.Empty, SKColor.Parse("000000"), icon);
+
+                    // Output to Stream -> File
+                    using (var image = surface.Snapshot())
+                    using (var data = image.Encode(SKEncodedImageFormat.Png, 100))
+                    using (var stream = File.OpenWrite(@"output/hoge.png"))
+                    {
+                        data.SaveTo(stream);
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/samples/LinuxRunSamples/3.1_nodep/entrypoint.sh b/samples/LinuxRunSamples/3.1_nodep/entrypoint.sh
new file mode 100644
index 0000000..2b27e45
--- /dev/null
+++ b/samples/LinuxRunSamples/3.1_nodep/entrypoint.sh
@@ -0,0 +1,11 @@
+#!/bin/bash -ex
+
+FRAMEWORK=netcoreapp3.1
+while [ $# -gt 0 ]; do
+    case $1 in
+        -f) FRAMEWORK=$2; shift 2; ;;
+        *) shift ;;
+    esac
+done
+
+dotnet run --csproj BuildTest.csproj -f "${FRAMEWORK}"
diff --git a/samples/LinuxRunSamples/3.1_nodep/samples/test.png b/samples/LinuxRunSamples/3.1_nodep/samples/test.png
new file mode 100644
index 0000000..b8699ad
Binary files /dev/null and b/samples/LinuxRunSamples/3.1_nodep/samples/test.png differ
diff --git a/samples/LinuxRunSamples/5.0/BuildTest.csproj b/samples/LinuxRunSamples/5.0/BuildTest.csproj
new file mode 100644
index 0000000..032fc03
--- /dev/null
+++ b/samples/LinuxRunSamples/5.0/BuildTest.csproj
@@ -0,0 +1,19 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFrameworks>netcoreapp3.1;net5.0</TargetFrameworks>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="SkiaSharp.QrCode" Version="0.4.0" />
+    <!-- require libfontconfig1 https://github.com/mono/SkiaSharp/issues/964#issuecomment-549385484 -->
+    <PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="2.80.2" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <None Update="samples\*.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+  </ItemGroup>
+</Project>
diff --git a/samples/LinuxRunSamples/5.0/Program.cs b/samples/LinuxRunSamples/5.0/Program.cs
new file mode 100644
index 0000000..dad664e
--- /dev/null
+++ b/samples/LinuxRunSamples/5.0/Program.cs
@@ -0,0 +1,54 @@
+using SkiaSharp;
+using System;
+using System.IO;
+using SkiaSharp.QrCode;
+using SkiaSharp.QrCode.Models;
+
+namespace SkiaQrCodeSampleConsole
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            Directory.CreateDirectory("output");
+
+            var content = "testtesttest";
+            using (var generator = new QRCodeGenerator())
+            {
+                // Generate QrCode
+                var qr = generator.CreateQrCode(content, ECCLevel.L);
+
+                // Render to canvas
+                var info = new SKImageInfo(512, 512);
+                using (var surface = SKSurface.Create(info))
+                {
+                    var canvas = surface.Canvas;
+                    canvas.Render(qr, info.Width, info.Height);
+
+                    // gen color
+                    // yellow https://rgb.to/yellow
+                    canvas.Render(qr, info.Width, info.Height, SKColor.Empty, SKColor.FromHsl(60,100,50));
+                    // red https://rgb.to/red
+                    canvas.Render(qr, info.Width, info.Height, SKColor.Empty, SKColor.FromHsl(0, 100, 50));
+
+                    // gen icon
+                    var logo = File.ReadAllBytes("samples/test.png");
+                    var icon = new IconData
+                    {
+                        Icon = SKBitmap.Decode(logo),
+                        IconSizePercent = 10,
+                    };
+                    canvas.Render(qr, info.Width, info.Height, SKColor.Empty, SKColor.Parse("000000"), icon);
+
+                    // Output to Stream -> File
+                    using (var image = surface.Snapshot())
+                    using (var data = image.Encode(SKEncodedImageFormat.Png, 100))
+                    using (var stream = File.OpenWrite(@"output/hoge.png"))
+                    {
+                        data.SaveTo(stream);
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/samples/LinuxRunSamples/5.0/entrypoint.sh b/samples/LinuxRunSamples/5.0/entrypoint.sh
new file mode 100644
index 0000000..7d177b0
--- /dev/null
+++ b/samples/LinuxRunSamples/5.0/entrypoint.sh
@@ -0,0 +1,13 @@
+#!/bin/bash -ex
+
+FRAMEWORK=netcoreapp3.1
+while [ $# -gt 0 ]; do
+    case $1 in
+        -f) FRAMEWORK=$2; shift 2; ;;
+        *) shift ;;
+    esac
+done
+
+apt update && apt install -y libfontconfig1
+
+dotnet run --csproj BuildTest.csproj -f "${FRAMEWORK}"
diff --git a/samples/LinuxRunSamples/5.0/samples/test.png b/samples/LinuxRunSamples/5.0/samples/test.png
new file mode 100644
index 0000000..b8699ad
Binary files /dev/null and b/samples/LinuxRunSamples/5.0/samples/test.png differ
diff --git a/samples/LinuxRunSamples/5.0_nodep/BuildTest.csproj b/samples/LinuxRunSamples/5.0_nodep/BuildTest.csproj
new file mode 100644
index 0000000..e539ad5
--- /dev/null
+++ b/samples/LinuxRunSamples/5.0_nodep/BuildTest.csproj
@@ -0,0 +1,18 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFrameworks>netcoreapp3.1;net5.0</TargetFrameworks>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="SkiaSharp.QrCode" Version="0.4.0" />
+    <PackageReference Include="SkiaSharp.NativeAssets.Linux.NoDependencies" Version="2.80.2" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <None Update="samples\*.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+  </ItemGroup>
+</Project>
diff --git a/samples/LinuxRunSamples/5.0_nodep/Program.cs b/samples/LinuxRunSamples/5.0_nodep/Program.cs
new file mode 100644
index 0000000..dad664e
--- /dev/null
+++ b/samples/LinuxRunSamples/5.0_nodep/Program.cs
@@ -0,0 +1,54 @@
+using SkiaSharp;
+using System;
+using System.IO;
+using SkiaSharp.QrCode;
+using SkiaSharp.QrCode.Models;
+
+namespace SkiaQrCodeSampleConsole
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            Directory.CreateDirectory("output");
+
+            var content = "testtesttest";
+            using (var generator = new QRCodeGenerator())
+            {
+                // Generate QrCode
+                var qr = generator.CreateQrCode(content, ECCLevel.L);
+
+                // Render to canvas
+                var info = new SKImageInfo(512, 512);
+                using (var surface = SKSurface.Create(info))
+                {
+                    var canvas = surface.Canvas;
+                    canvas.Render(qr, info.Width, info.Height);
+
+                    // gen color
+                    // yellow https://rgb.to/yellow
+                    canvas.Render(qr, info.Width, info.Height, SKColor.Empty, SKColor.FromHsl(60,100,50));
+                    // red https://rgb.to/red
+                    canvas.Render(qr, info.Width, info.Height, SKColor.Empty, SKColor.FromHsl(0, 100, 50));
+
+                    // gen icon
+                    var logo = File.ReadAllBytes("samples/test.png");
+                    var icon = new IconData
+                    {
+                        Icon = SKBitmap.Decode(logo),
+                        IconSizePercent = 10,
+                    };
+                    canvas.Render(qr, info.Width, info.Height, SKColor.Empty, SKColor.Parse("000000"), icon);
+
+                    // Output to Stream -> File
+                    using (var image = surface.Snapshot())
+                    using (var data = image.Encode(SKEncodedImageFormat.Png, 100))
+                    using (var stream = File.OpenWrite(@"output/hoge.png"))
+                    {
+                        data.SaveTo(stream);
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/samples/LinuxRunSamples/5.0_nodep/entrypoint.sh b/samples/LinuxRunSamples/5.0_nodep/entrypoint.sh
new file mode 100644
index 0000000..2b27e45
--- /dev/null
+++ b/samples/LinuxRunSamples/5.0_nodep/entrypoint.sh
@@ -0,0 +1,11 @@
+#!/bin/bash -ex
+
+FRAMEWORK=netcoreapp3.1
+while [ $# -gt 0 ]; do
+    case $1 in
+        -f) FRAMEWORK=$2; shift 2; ;;
+        *) shift ;;
+    esac
+done
+
+dotnet run --csproj BuildTest.csproj -f "${FRAMEWORK}"
diff --git a/samples/LinuxRunSamples/5.0_nodep/samples/test.png b/samples/LinuxRunSamples/5.0_nodep/samples/test.png
new file mode 100644
index 0000000..b8699ad
Binary files /dev/null and b/samples/LinuxRunSamples/5.0_nodep/samples/test.png differ
diff --git a/samples/LinuxRunSamples/docker-compose.yaml b/samples/LinuxRunSamples/docker-compose.yaml
new file mode 100644
index 0000000..882fd64
--- /dev/null
+++ b/samples/LinuxRunSamples/docker-compose.yaml
@@ -0,0 +1,30 @@
+version: "3"
+
+services:
+  netcoreapp3.1:
+    image: mcr.microsoft.com/dotnet/core/sdk:3.1
+    command: bash -eux entrypoint.sh -f netcoreapp3.1
+    working_dir: /src
+    volumes:
+      - ./3.1/:/src
+
+  netcoreapp3.1_nodep:
+    image: mcr.microsoft.com/dotnet/core/sdk:3.1
+    command: bash -eux entrypoint.sh -f netcoreapp3.1
+    working_dir: /src
+    volumes:
+      - ./3.1_nodep/:/src
+
+  net5.0:
+    image: mcr.microsoft.com/dotnet/sdk:5.0
+    command: bash -eux entrypoint.sh -f net5.0
+    working_dir: /src
+    volumes:
+      - ./5.0:/src
+
+  net5.0__nodep:
+    image: mcr.microsoft.com/dotnet/sdk:5.0
+    command: bash -eux entrypoint.sh -f net5.0
+    working_dir: /src
+    volumes:
+      - ./5.0_nodep:/src
diff --git a/samples/ManualGenerate/ManualGenerate.csproj b/samples/ManualGenerate/ManualGenerate.csproj
index d847a5b..39a613d 100644
--- a/samples/ManualGenerate/ManualGenerate.csproj
+++ b/samples/ManualGenerate/ManualGenerate.csproj
@@ -6,7 +6,12 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="SkiaSharp.QrCode" Version="0.4.0" />
+    <PackageReference Include="SkiaSharp" Version="2.80.2" />
+    <PackageReference Include="SkiaSharp.NativeAssets.Linux.NoDependencies" Version="2.80.2" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\..\src\SkiaSharp.QrCode\SkiaSharp.QrCode.csproj" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/samples/SimpleGenerate/SimpleGenerate.csproj b/samples/SimpleGenerate/SimpleGenerate.csproj
index 520ee42..39a613d 100644
--- a/samples/SimpleGenerate/SimpleGenerate.csproj
+++ b/samples/SimpleGenerate/SimpleGenerate.csproj
@@ -7,8 +7,16 @@
 
   <ItemGroup>
     <PackageReference Include="SkiaSharp" Version="2.80.2" />
-    <PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="2.80.2" />
-    <PackageReference Include="SkiaSharp.QrCode" Version="0.4.0" />
+    <PackageReference Include="SkiaSharp.NativeAssets.Linux.NoDependencies" Version="2.80.2" />
   </ItemGroup>
 
+  <ItemGroup>
+    <ProjectReference Include="..\..\src\SkiaSharp.QrCode\SkiaSharp.QrCode.csproj" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <None Update="samples\*.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+  </ItemGroup>
 </Project>
diff --git a/src/SkiaSharp.QrCode/SkiaSharp.QrCode.csproj b/src/SkiaSharp.QrCode/SkiaSharp.QrCode.csproj
index c30997b..b6918b8 100644
--- a/src/SkiaSharp.QrCode/SkiaSharp.QrCode.csproj
+++ b/src/SkiaSharp.QrCode/SkiaSharp.QrCode.csproj
@@ -23,7 +23,6 @@
 
   <ItemGroup>
     <PackageReference Include="SkiaSharp" Version="2.80.2" />
-    <PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="2.80.2" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/tests/SkiaSharp.QrCode.Tests.net31/GenerateUnitTest.cs b/tests/SkiaSharp.QrCode.Tests.net31/GenerateUnitTest.cs
index 6ef45b6..af339d5 100644
--- a/tests/SkiaSharp.QrCode.Tests.net31/GenerateUnitTest.cs
+++ b/tests/SkiaSharp.QrCode.Tests.net31/GenerateUnitTest.cs
@@ -55,6 +55,25 @@ public void IconGenerateUnitTest()
             Assert.True(actual.SequenceEqual(expect));
         }
 
+        [Fact]
+        public void SKImageInfoTest()
+        {
+            var a = new SKImageInfo();
+            Assert.NotNull(a);
+            var b = new SKImageInfo(100, 100);
+            Assert.NotNull(b);
+            foreach (SKColorType colorType in Enum.GetValues(typeof(SKColorType)))
+            {
+                var c = new SKImageInfo(100, 100, colorType);
+                Assert.NotNull(c);
+                foreach (SKAlphaType alphaType in Enum.GetValues(typeof(SKAlphaType)))
+                {
+                    var d = new SKImageInfo(100, 100, colorType, alphaType);
+                    Assert.NotNull(d);
+                }
+            }
+        }
+
         private byte[] GenerateQrCode(string content, SKColor? color)
         {
             // Generate QrCode
diff --git a/tests/SkiaSharp.QrCode.Tests.net31/SkiaSharp.QrCode.Tests.net31.csproj b/tests/SkiaSharp.QrCode.Tests.net31/SkiaSharp.QrCode.Tests.net31.csproj
index b483ae3..a7b49e6 100644
--- a/tests/SkiaSharp.QrCode.Tests.net31/SkiaSharp.QrCode.Tests.net31.csproj
+++ b/tests/SkiaSharp.QrCode.Tests.net31/SkiaSharp.QrCode.Tests.net31.csproj
@@ -7,6 +7,7 @@
   </PropertyGroup>
 
   <ItemGroup>
+    <PackageReference Include="SkiaSharp.NativeAssets.Linux.NoDependencies" Version="2.80.2" />
     <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
     <PackageReference Include="xunit" Version="2.4.1" />
     <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
diff --git a/tests/SkiaSharp.QrCode.Tests.net50/SkiaSharp.QrCode.Tests.net50.csproj b/tests/SkiaSharp.QrCode.Tests.net50/SkiaSharp.QrCode.Tests.net50.csproj
index 89227c7..4950a6c 100644
--- a/tests/SkiaSharp.QrCode.Tests.net50/SkiaSharp.QrCode.Tests.net50.csproj
+++ b/tests/SkiaSharp.QrCode.Tests.net50/SkiaSharp.QrCode.Tests.net50.csproj
@@ -10,6 +10,7 @@
   </ItemGroup>
 
   <ItemGroup>
+    <PackageReference Include="SkiaSharp.NativeAssets.Linux.NoDependencies" Version="2.80.2" />
     <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
     <PackageReference Include="xunit" Version="2.4.1" />
     <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">