本地化Windows服务

时间:2011-08-09 16:51:35

标签: localization windows-services

我一直在寻找很长一段时间,但主题似乎很特别。我没有拿出任何东西。也许这里的专家可以帮助我。

我运行Windows服务,访问某些数据库并进行一些计算。如果某些内容失败,那么这将导致日志文件中的条目。 我希望将这些条目放在一边。 到目前为止,除了这个Windows服务之外,这对每个项目都很好。

我使用资源管理器和本地化资源文件。 在运行期间,CultureInfo由以下内容更改:

Thread.CurrentThread.CurrentUICulture = new CultureInfo(this.language);

其中language是从配置文件中读取的值。 下一行的变化很明显:

LogService.WriteEntry(CultureInfo.CurrentUICulture.Name, EventLogEntryType.Information);

这适用于并返回正确的CultureInfo。 资源文件命名正确但仍然无法访问本地化文件(在这种情况下为“de”)并使用默认(英语)文件。 我将资源文件添加到安装项目中的项目输出中。

编辑: 在其他项目中,以下工作正常,但不适用于Windows服务:

ResourceManager locRM = new ResourceManager("WindowsService.ResWindowsService", Assembly.GetExecutingAssembly());

似乎Windows服务无法找到附属程序集,然后回退到似乎在Windows Service exe文件中的中性资源文件。 有谁知道如何让Windows服务找到卫星装配。

编辑2:解决方案

一位亲爱的同事帮忙。 我强烈命名了卫星装配并将其注册在GAC中。那就是解决方案。现在,Windows服务可以访问它。 详细步骤: 在安装项目的文件系统编辑器中:添加特殊文件夹 - >全局程序集缓存文件夹 添加文件 - >我在这里添加了资源文件 然后在项目属性 - >下签名标记“签署程序集”并创建一个新的密钥文件。

就是这样。

谢谢, 尼尔斯

0 个答案:

没有答案