如何允许用户为我的应用程序编译.resources.dll文件



我在steam上有一个一夫一妻制的游戏,我想让MODERS能够将游戏中的文本翻译成他们的母语,并将语言包上传到steam工作室。

我已经使用Visual Studio设计器将游戏中的大部分文本传输到.resx文件(Localization.resx(中,我可以在Visual Studio中创建语言包,只需复制该文件并用区域性名称重命名即可(例如Localization.en US.resx。(。Visual Studio负责将其编译到.resources.dll文件中,如果我更改CurrentUICulture,就会加载该文件。

然而,当我尝试在另一台计算机上编译resx文件(使用ResGen.exe和al.exe(并将生成的dll复制到适当的位置(以区域命名的子文件夹:例如MyGame\en US(时,什么都没有发生。游戏继续使用默认字符串。以下是我用来编译它的命令:

"C:Program Files (x86)Microsoft SDKsWindowsv8.1AbinNETFX 4.5.1 ToolsResGen.exe" Localization.resx
"C:Program Files (x86)Microsoft SDKsWindowsv8.1AbinNETFX 4.5.1 Toolsal.exe" /t:lib /embed:Localization.resources /culture:en-US /out:MyGame.resources.dll

我以为卫星程序集和资源文件是为此目的而构建的,但我开始认为我误解了这项技术。

资源文件在可执行程序集中静态链接(指向(。单独添加文件将不起作用。

必须为任何非编译时资源提供动态加载程序。

一个更好的解决方案是允许翻译上传、验证并编译到一个新的程序集中。你释放了。

最新更新