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
當資料夾更改時,通配符能保持新語言檔案同步而無需更改專案引用。
準備開始了嗎?
Nuget 下載 6,136,090 | 版本: 2026.7 剛剛發布

