gpt4 book ai didi

c# - 使用 cab 文件安装应用程序时,区域性特定字符串资源 dll 在 .net 紧凑框架中不起作用

转载 作者:行者123 更新时间:2023-11-30 14:41:02 25 4
gpt4 key购买 nike

我在 Windows Mobile 6.1 上使用 Visual Studio 2008 和 .net Compact Framework 3.5 创建了一个具有本地化功能的应用程序。为了实现本地化,我为此使用了很多资源文件,每种语言一个:

StringResources.de-DE.resx

StringResources.es-ES.resx

StringResources.zh-CN.resx

StringResources.fr-FR.resx

StringResources.nl-NL.resx

我还有一个 StringResources.resx 文件,其中包含用于回退的默认字符串,以防选择我的应用程序不支持的其他文化。

我还使用“SmartDeviceCabProject”(vdproj 类型)创建了一个 .cab 文件,以在设备上执行此应用程序的安装。 (使用 msdn.microsoft.com/en-us/library/aa446504.aspx)

这是我面临的问题:当我将区域性更改为 nl-NL 以外的任何内容时,我总是得到默认字符串。

另请注意,当我将应用程序的“bin”文件夹复制粘贴到设备中时,可以看到所有文化字符串。只有通过cab文件安装应用程序时才会出现问题。

此外,如果我删除 StringResources.nl-NL.resx 文件并且只有

StringResources.de-DE.resx

StringResources.es-ES.resx

StringResources.zh-CN.resx

StringResources.fr-FR.resx

作为文化特定资源并重新创建 cab 文件,现在看到当我将文化更改为 fr-FR 以外的任何内容时,我总是得到默认字符串。因此只有最后一个文化文件始终有效。

为了确保我通过设备上的 cab 文件区分了安装在每个文化文件夹中的 dll:de-DE\Application.StringResources.dll

es-ES\Application.StringResources.dll

zh-CN\Application.StringResources.dll

fr-FR\Application.StringResources.dll

nl-NL\Application.StringResources.dll

奇怪的是我发现所有的 dll 都完全一样。但是,如果我比较“bin”文件夹中存在的 dll,则会发现它们不同。

因此我相信 .cab 文件构建导致相同的 DLL 被复制到每个文件夹。

考虑到上述解释,请帮助我:

**1。我该怎么做才能使 cab 文件将正确的 DLL 安装到文件夹中?

  1. 还有其他方法可以放置正确的 dll 吗?

  2. 还有其他方法可以实现本地化吗?**

最佳答案

此问题已注册为 WizCab.exe 中的错误:Smart Device CAB Project includes wrong localized resources .

我发现解决该问题的最佳方法是:

  1. 将构建后事件添加到具有将资源文件复制到唯一(文件)名称的本地化资源的项目:

    复制 "$(TargetDir)sv\$(TargetName).resources.dll""$(TargetDir)sv\sv_$(TargetName).resources.dll"

    对于当前的每种语言。

  2. 执行构建并用空文件覆盖这些独特的资源文件 - 否则 visual studio GUI 将不允许您重命名(第 4 步)添加的文件。

  3. 将复制的本地化程序集作为文件(右键单击 .cab-project 并选择“应用程序文件夹”下的“查看”->“文件系统”)添加到正确的本地化文件夹,而不是使用对项目输出的引用.

  4. 将“文件系统 View ”中添加的程序集重命名回它们的原始名称(“YourProject.resources.dll”。)

不是很好,但它有效。

关于c# - 使用 cab 文件安装应用程序时,区域性特定字符串资源 dll 在 .net 紧凑框架中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4672752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com