ClickOnce Yayınlamalarında İkincil Dil Dosyaları Eksik
Bir .NET 8.0 konsol uygulaması, İspanyolca, Japonca vb. ikincil dil paketi olan IronOCR'u Visual Studio içinde sorunsuz çalıştırır, ancak ClickOnce ile yayınlandığında çalışma zamanında hata verir. Dil veri dosyaları yayın çıktılarına dahil edilmez.
IronOcr.Exceptions.LanguagePackException:
Please install the NuGet Package IronOcr.Languages.Spanish...
Error: 'The file Spanish.ocrdata was not found'
ClickOnce, açıkça bildiği şeyleri sadece yayınlar. İkincil dil .ocrdata dosyaları otomatik olarak tanınmaz veya paketlenmez, bu nedenle paket yüklü olmasına rağmen dağıtımdan sessizce çıkarılır.
Çözüm
Dil paketi dosyalarını yayınlanacak şekilde işaretleyin, böylece ClickOnce onları dağıtıma taşısın. Projenize uygun seçeneği seçin.
Seçenek 1: Her Dosyayı İçerik Olarak İ işaretleyin
Derleme çıktınızda .ocrdata dosyalarını bulun, genellikle:
bin\Debug\net8.0\OcrData
OcrData klasörü içindeki her dosya için ayarlayın:
- Derleme Eylemi:
Content - Çıkış Dizini Kopyası:
Copy if newer
Bu, dosyaları derleme klasörüne kopyalar ve onları ClickOnce yayım sürecine çeker.
Seçenek 2: Onları .csproj içinde dahil edin
Klasör otomatik olarak oluşturulduğunda veya büyük olduğunda, her bir .ocrdata dosyasını arayüzde yönetmek yerine tüm dosyaları özyinelemeli olarak almak için .csproj düzenleyin:
<ItemGroup>
<Content Include="OcrData\**\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Content Include="OcrData\**\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
Globe, klasör değiştiğinde, proje referanslarına dokunmadan yeni dil dosyalarını senkronize eder.

