Brakujace pliki jezykow dodatkowych w publikacjach ClickOnce
Aplikacja konsolowa .NET 8.0, ktora korzysta z IronOCR z dodatkowym pakietem jezykowym (hiszpanskim, japonskim i innymi) dziala dobrze w Visual Studio, ale rzuca wyjatkiem w czasie rzeczywistym po opublikowaniu z ClickOnce. Pliki danych jezykowych nigdy nie zostają uwzględnione w wynikach publikacji.
IronOcr.Exceptions.LanguagePackException:
Please install the NuGet Package IronOcr.Languages.Spanish...
Error: 'The file Spanish.ocrdata was not found'
ClickOnce publikuje tylko to, co zna explicite. Pliki jezykowe dodatkowe .ocrdata nie sa rozpoznawane ani automatycznie pakowane, wiec sa cicho usuwane z wdrozenia, mimo ze pakiet jest zainstalowany.
Rozwiązanie
Oznacz pliki pakietu jezykowego do publikacji, aby ClickOnce przeniosl je do wdrozenia. Wybierz dowolna opcje pasujaca do twojego projektu.
Opcja 1: Oznacz kazdy plik jako zawartosc
Znajdz pliki .ocrdata w wynikach kompilacji, zazwyczaj:
bin\Debug\net8.0\OcrData
Dla kazdego pliku w folderze OcrData ustaw:
- Akcja kompilacji:
Content - Kopiuj do katalogu wyjsciowego:
Copy if newer
Skopiuje to pliki do folderu kompilacji i wlacza je do procesu publikacji ClickOnce.
Opcja 2: Wlacz je w .csproj
Gdy folder jest automatycznie generowany lub duzy, edytuj .csproj, aby pobieral kazdy plik .ocrdata rekurencyjnie zamiast zarzadzania kazdym z nich w interfejsie uzytkownika:
<ItemGroup>
<Content Include="OcrData\**\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Content Include="OcrData\**\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
Glob synchronizuje nowe pliki jezykowe, nie dotykajac referencji projektowych, gdy folder sie zmienia.

