C# vsto附加模块中的本地化

C# vsto附加模块中的本地化,c#,.net,localization,vsto,C#,.net,Localization,Vsto,这是在VSTO Word中实现本地化的正确方法吗?现在,我只是遵守命名约定,将当前区域性附加到它搜索的资源文件中。我已经阅读了足够多的不同材料而感到困惑,其中一种方法是使用Resgen.exe然后使用Al.exe生成.dll,但我不明白到底是什么原因,它能够更新语言而不必重新编译吗 System.Resources.ResourceManager resMgr; System.Globalization.CultureInfo ci = System.Threading.Thread.Curre

这是在VSTO Word中实现本地化的正确方法吗?现在,我只是遵守命名约定,将当前区域性附加到它搜索的资源文件中。我已经阅读了足够多的不同材料而感到困惑,其中一种方法是使用Resgen.exe然后使用Al.exe生成.dll,但我不明白到底是什么原因,它能够更新语言而不必重新编译吗

System.Resources.ResourceManager resMgr;
System.Globalization.CultureInfo ci = System.Threading.Thread.CurrentThread.CurrentCulture;
try
{
    // somehow I feel this isn't how it was meant to be? but it works
    resMgr = new System.Resources.ResourceManager("MyAddin.MyLocalisation." + ci, Assembly.GetExecutingAssembly());
    string title = resMgr.GetString("MyTitle");
}

这种混乱可能是因为有。(al.exe)和(resgen.exe)是处理本地化资源时使用的主要工具Resgen.exe将把resx(XML)编译成资源(二进制),而al.exe将把资源(二进制)合并成附属程序集(dll)。(轮毂和轮辐)。无需重新编译应用程序,即可更新附属程序集


发件人: 您可以在资源文件中包含资源,例如字符串、图像或对象数据,以便应用程序可以轻松使用这些资源。.NET Framework提供了创建资源文件的五种方法:

一,。创建包含字符串资源的文本文件。您可以使用资源文件生成器(Resgen.exe)将文本文件转换为二进制资源(.resources)文件。然后,可以使用语言编译器将二进制资源文件嵌入到应用程序可执行文件或应用程序库中,也可以使用程序集链接器(Al.exe)将其嵌入到附属程序集中。有关更多信息,请参阅文本文件中的参考资料部分

二,。创建包含字符串、图像或对象数据的XML资源(.resx)文件。可以使用资源文件生成器(Resgen.exe)将.resx文件转换为二进制资源(.resources)文件。然后,可以使用语言编译器将二进制资源文件嵌入到应用程序可执行文件或应用程序库中,也可以使用程序集链接器(Al.exe)将其嵌入到附属程序集中。有关更多信息,请参阅.resx文件中的参考资料部分

三,。使用System.Resources命名空间中的类型以编程方式创建XML资源(.resx)文件。您可以创建.resx文件,枚举其资源,并按名称检索特定资源。有关详细信息,请参阅以编程方式处理.resx文件的主题

四,。以编程方式创建二进制资源(.resources)文件。然后,可以使用语言编译器将文件嵌入到应用程序可执行文件或应用程序库中,也可以使用程序集链接器(Al.exe)将其嵌入到附属程序集中。有关更多信息,请参阅.Resources文件中的参考资料部分

五,。使用Visual Studio创建资源文件并将其包含在项目中。VisualStudio提供了一个资源编辑器,可用于添加、删除和修改资源。在编译时,资源文件会自动转换为二进制.resources文件,并嵌入到应用程序程序集或附属程序集中。有关详细信息,请参见VisualStudio中的资源文件部分