ClickOnceの発行でのセカンダリ言語ファイルの欠如
IronOCRをセカンダリ言語パック(スペイン語、日本語など)とともに使用する .NET 8.0 コンソールアプリはVisual Studio内で正常に動作しますが、ClickOnceで発行すると実行時にエラーが発生します。 言語データファイルは発行出力に入りません。
IronOcr.Exceptions.LanguagePackException:
Please install the NuGet Package IronOcr.Languages.Spanish...
Error: 'The file Spanish.ocrdata was not found'
ClickOnceはそれ自身が認識しているものだけを発行します。 セカンダリ言語.ocrdataファイルは自動的には認識またはバンドルされず、パッケージがインストールされているにもかかわらずデプロイメントから静かに除外されます。
解決策
言語パックファイルを発行するためにマークし、ClickOnceがそれらをデプロイメントに含むようにします。 お使いのプロジェクトに適したオプションを選択してください。
オプション1: 各ファイルをコンテンツとしてマークする
通常はビルド出力にある.ocrdataファイルを探します:
bin\Debug\net8.0\OcrData
OcrDataフォルダー内の各ファイルに対して以下を設定します:
- ビルドアクション:
Content - 出力ディレクトリへコピー:
Copy if newer
それによりファイルがビルドフォルダーにコピーされ、ClickOnceの発行プロセスに取り込まれます。
オプション2: .csprojに含める
フォルダーが自動生成されたり大きい場合は、各ファイルをUIで管理する代わりに.ocrdataファイルを再帰的に取得します:
<ItemGroup>
<Content Include="OcrData\**\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Content Include="OcrData\**\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
globは、フォルダーが変更されるたびにプロジェクト参照に触れずに新しい言語ファイルを同期させ続けます。

