C# 您可以在不强制重建的情况下添加语言吗?

C# 您可以在不强制重建的情况下添加语言吗?,c#,vb.net,winforms,visual-studio-2017,C#,Vb.net,Winforms,Visual Studio 2017,我的应用程序被设计成可以在两种不同的语言上运行,英语和捷克语。为了实现这一点,我创建了两个资源文件: 如果最终用户希望添加另一种语言,例如GlobalStrings.fr-fr.resx,是否可以在不重建应用程序的情况下允许此功能? 如果我们查看这些资源文件的属性: 我不明白嵌入式资源是什么意思。这是否意味着为了让应用程序使用此文件,必须重建应用程序 我们如何创建一个资源文件,最终用户可以对其进行扩展/更改,而不必重建整个应用程序 ?常规.Net资源被编译成具有特定名称的程序集,并通过匹配该

我的应用程序被设计成可以在两种不同的语言上运行,英语和捷克语。为了实现这一点,我创建了两个资源文件:

如果最终用户希望添加另一种语言,例如
GlobalStrings.fr-fr.resx
是否可以在不重建应用程序的情况下允许此功能?

如果我们查看这些资源文件的属性:

我不明白嵌入式资源是什么意思。这是否意味着为了让应用程序使用此文件,必须重建应用程序

我们如何创建一个资源文件,最终用户可以对其进行扩展/更改,而不必重建整个应用程序

常规.Net资源被编译成具有特定名称的程序集,并通过匹配该名称来加载。所以,如果“最终用户”可以翻译resx文件中的字符串,并将资源编译成具有特定名称的程序集(如“MyResources.cs cz.dll”),则可以使用默认的.Net行为,而无需重新编译主代码。有关更多信息,请参阅和相关链接

请注意,您不需要VisualStudio,可以使用csc命令行编译器在用户的机器上编译,所以如果您真的需要,您可以提供简单的脚本,在本地编译相应的resx。注意,编辑XML(RESX)作为文本通常是不可能的,因为某些字符需要编码-考虑到“最终用户”的技术水平,然后走这条路线。资源的源版本可能在更多情况下起作用


通常情况并非如此-如果需要最终用户本地化,您可以通过从纯文本文件或数据库加载用户可以在本地更新的字符串来创建某种自定义资源字符串管理。

是的,这是可能的。在这里阅读更多关于资源的信息:使用这个:是的,使用这个插件是很棒的!!仍然不了解如何允许客户编辑值不知道alex为什么删除了他的帖子,但很好,不幸的是,中途它消失了我恢复了它。。。在检查是否一切正常时,我发现了一篇关于资源纯文本版本的文章,尽管我们实际上除了编译程序集之外还支持纯文本(从而使答案无效),但这只是在答案中指定编译资源程序集的源的另一种方法-链接。