Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 50580|Yanıt: 2

[.NET Core] Linux fotoğraflarında .NET Core su nişanı sorunları

[Bağlantıyı kopyala]
2021-3-28 tarihinde 14:46:15 tarihinde yayınlandı | | | |
Gereksinimler: .NET Core artık çapraz platform olabiliyor, proje Linux ortamında yayınlanıp çalıştırılır ve proje bazı görüntü işleme içerir; örneğin: doğrulama kodları oluşturma, görselleri su işareti gibi şeyler.

Öncelikle, bir .NET Core 3.1 konsol projesi oluşturun (kaynak kodu makalenin sonunda eklenir) ve görüntü işleme kurulmalıdır:System.Drawing.Common

Kurulumu aşağıdaki komutla yönetmek için nuget paketini kullanın:


Projeyi tek bir dosya olarak yayınlayın, hedef platform: linux-x64 ve yayın yapılandırması şu şekildedir:

<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration>Yayın</Configuration>
    <Platform>Herhangi bir işlemci</Platform>
    <PublishDir>bin\Release\netcoreapp3.1\publish\</PublishDir>
    <PublishProtocol>Dosya Sistemi</PublishProtocol>
    <TargetFramework>NetcoreApp3.1</TargetFramework>
    <RuntimeIdentifier>Linux-x64</RuntimeIdentifier>
    doğru <SelfContained></SelfContained>
    <PublishSingleFile>Doğru</PublishSingleFile>
    <PublishTrimmed>Yanlış</PublishTrimmed>
  </PropertyGroup>
</Project>
Oluşturulan tek yürütülebilir dosya, programın yürütülmesi için gereken ortamı içerir ve hedef bilgisayarın SDK'yı yüklemesine gerek yoktur; dezavantajı ise dosya boyutunun çok büyük olmasıdır.

Yayınlanan dosyayı CentOS sunucusuna yükleyin veDosyaya yürütme izinleri verin! Aksi takdirde, program aşağıdaki komutla çalışmaz:


Sonra dosyayı çalıştırın ve karşılaşabileceğiniz sorunlar şunlardır:

.NET Core tek dosya yolu sorunu çıkarıyor
https://www.itsvse.com/thread-9604-1-1.html

.NET Core Linux Hatası: Geçerli bir ICU paketi kurulamadı...
https://www.itsvse.com/thread-9603-1-1.html

Linux Arıza İşleme uygulama paketinde .NET Core hatası
https://www.itsvse.com/thread-9602-1-1.html
Hata şu ise:

Çözülemeyen istisna. System.TypeInitializationException: 'Gdip' için tür başlatıcısı bir istisna attı.
---> System.DllNotFoundException: Paylaşılan kütüphane 'libgdiplus' veya bağımlılıklarından birini yüklenemiyor. Yükleme sorunlarını teşhis etmek için LD_DEBUG ortam değişkenini ayarlayın: liblibgdiplus: paylaşılan nesne dosyasını açamıyor: Böyle bir dosya veya dizin yok
   System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr&token, StartupInput&input, StartupOutput&output) adresinde.
   System.Drawing.SafeNativeMethods.Gdip.. cctor()
   --- İç istisna yığını izinin sonu ---
   System.Drawing.SafeNativeMethods.Gdip.Gdip.GdipLoadImageFromFile(Dizim dosya adı, IntPtr&resim) adresinde
   at System.Drawing.Image.FromFile (String dosya adı, Boolean useEmbeddedColorManagement)
   System.Drawing.Image.FromFile adresinde (Dizi dosya adı)
   at ImageWatermark.Program.Main(String[] args)
İptal edildi
Aşağıdaki komutu kullanınlibgdiplus-devel kur


Yeniden çalıştırmayı deneyin, aşağıdaki görselde gösterildiği gibi yürütmenin başarılı olduğunu görebilirsiniz:



Su işaretli görseli görüntüleyin ve "57f2305a-6850-41af-80ab-8d2bf89569e5.jpg" dosyasını açın, etki şu şekildedir:



Keşif,Çince karakterler karıştırılmış, İngilizce karakterlerde bir sorun yok, sistemin kurduğu fontu kontrol edin, komut şöyle:



Komut sistemde mevcut değilse, önce ilgili yazılım paketini yüklememiz gerekir, komut şöyledir:

Çözüm, açık kaynaklı ticari olarak mevcut google-noto fontunu aşağıdaki komutla kurmak:



Kaynak kodunda kullanılan fontu değiştirin, yeniden yayınlayın ve sunucuya yükleyin, yürütme sonucu şu şekildedir:



Aşağıdaki kodla başarılı bir Çin filingonu ekleyebilirsiniz:

Kaynak kodu indirme:

Turistler, bu gönderinin gizli içeriğini görmek isterseniz lütfenYanıt


(Son)




Önceki:.NET Core tek dosya yolu sorunu çıkarıyor
Önümüzdeki:.NET/C# Rule Engine RulesEngine eğitimi
 Ev sahibi| 2021-6-16 tarihinde 14:10:48 tarihinde yayınlandı |
2022-12-29 11:49:27 tarihinde yayınlandı |
Aşağıdaki kodla başarılı bir Çin filingonu ekleyebilirsiniz:
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com