ClickOnce發布中缺少次要語言檔案

This article was translated from English: Does it need improvement?
Translated
View the article in English

.NET 8.0的控制台應用程式使用IronOCR與次要語言包(西班牙語、日語等)在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

當資料夾是自動生成或較大時,編輯.ocrdata檔案,而不是在UI中管理每個檔案:

<ItemGroup>
  <Content Include="OcrData\**\*">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </Content>
</ItemGroup>
<ItemGroup>
  <Content Include="OcrData\**\*">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </Content>
</ItemGroup>
XML

當資料夾更改時,通配符能保持新語言檔案同步而無需更改專案引用。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備開始了嗎?
Nuget 下載 6,136,090 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

還在滾動?

想要快速證明? PM > Install-Package IronOcr
執行範例 觀看您的圖像轉變為可搜尋文字。