不同部署的不同resx c#

不同部署的不同resx c#,c#,deployment,localization,embedded-resource,resourcemanager,C#,Deployment,Localization,Embedded Resource,Resourcemanager,我正在使用“PublicResXFileGenerator”生成的嵌入式资源,它生成了我的ResourceManager类。 我正试图找到一种方法来支持同一语言的多个resx文件,或者以某种方式能够从已部署的应用程序中修改它,但这似乎并不可行 例如,客户端“x”正在使用英-美翻译: 平坦的 而另一个客户“y”正在使用英-美翻译: 公寓 也许上面的例子很愚蠢,但我希望你明白我的意思。 不同的用户对同一件事使用不同的命名,我想支持这一点 可能吗 注: 我的代码是用C#编写的。默认资源文件(可

我正在使用“PublicResXFileGenerator”生成的嵌入式资源,它生成了我的ResourceManager类。 我正试图找到一种方法来支持同一语言的多个resx文件,或者以某种方式能够从已部署的应用程序中修改它,但这似乎并不可行

例如,客户端“x”正在使用英-美翻译:

  • 平坦的
而另一个客户“y”正在使用英-美翻译:

  • 公寓
也许上面的例子很愚蠢,但我希望你明白我的意思。 不同的用户对同一件事使用不同的命名,我想支持这一点

可能吗

注:
我的代码是用C#编写的。

默认资源文件(可能是Resources.resx)中的字符串嵌入到可执行文件中

如果定义特定于语言的资源文件(例如Resources.en US.resx),则Visual Studio将自动生成包含本地化资源的附属DLL

如果将本地化资源添加到WinForms表单中,也同样适用,如此处针对Form1所示

卫星DLL在bin目录的子目录中生成。 DLL必须以完全相同的名称部署在目标计算机的子目录中

这适用于任何语言中的本地化字符串,但对当前默认语言中的字符串的作用完全相同。

如果当前默认值为en US,并且存在en US的附属DLL,并且该DLL包含所需的资源,则.NET Framework将自动使用附属DLL中的资源

如果您不想从卫星DLL获得资源,没问题。不要将其部署到目标计算机。然后.NET framework将使用嵌入可执行文件中的默认资源

如果只有两种变体,那么在VisualStudio中使用默认资源文件和en-US资源文件很容易管理。如果您有两个以上的变体,则需要一个策略来生成资源。最简单的方法可能是误用另一种语言

或者,您可以使用其他工具。也许可以做这项工作,但我不是100%确定


从技术上讲,您可以定义自定义文化,例如en-US medical或en-US legal,但根据我的经验,这太麻烦了。我不认为(仅凭我的观点)微软强烈支持这个概念。

它必须嵌入到你的二进制文件中?我认为,它可以实现加载分离的dll。我宁愿不改变嵌入式结构。不过,如果可能的话,能够更改.dll将是一件有趣的事情。您好,Phil Jollans,谢谢您提供的有用信息。我一直在考虑滥用另一种语言,但这感觉像是一个不正确的解决办法,即使它可能会解决我的问题。然而,dll文件非常有趣。也许我会添加从根目录更改dll的功能。