Fichiers de Langue Secondaire Manquants dans les Publications ClickOnce
Une application console .NET 8.0 qui utilise IronOCR avec un pack de langue secondaire (espagnol, japonais, etc.) fonctionne bien dans Visual Studio mais échoue à l'exécution une fois publiée avec ClickOnce. Les fichiers de données de langue n'arrivent jamais dans la sortie de publication.
IronOcr.Exceptions.LanguagePackException:
Please install the NuGet Package IronOcr.Languages.Spanish...
Error: 'The file Spanish.ocrdata was not found'
ClickOnce ne publie que ce dont il a explicitement connaissance. Les fichiers .ocrdata de langue secondaire ne sont pas reconnus ou intégrés automatiquement, ils sont donc silencieusement éliminés du déploiement même si le package est installé.
Solution
Marquez les fichiers du pack de langue pour la publication afin que ClickOnce les transporte dans le déploiement. Choisissez l'option qui convient à votre projet.
Option 1 : Marquez chaque fichier comme contenu
Localisez les fichiers .ocrdata dans la sortie de votre build, généralement :
bin\Debug\net8.0\OcrData
Pour chaque fichier dans le dossier OcrData, définissez :
- Action de build :
Content - Copier dans le répertoire de sortie :
Copy if newer
Cela copie les fichiers dans le dossier de build et les intègre au processus de publication ClickOnce.
Option 2 : Incluez-les dans le .csproj
Lorsque le dossier est auto-généré ou grand, éditez le .csproj pour inclure chaque fichier .ocrdata de manière récursive au lieu de gérer chacun dans l'UI :
<ItemGroup>
<Content Include="OcrData\**\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Content Include="OcrData\**\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
Le glob garde les nouveaux fichiers de langue en synchronisation sans toucher aux références du projet chaque fois que le dossier change.

