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
这个glob使新的语言文件与文件夹变化同步,而不影响项目引用。
准备开始了吗?
Nuget 下载 6,136,090 | 版本: 2026.7 刚刚发布

