0

第 1 步:好的,我知道我已经阅读了网上关于这个的每一页,所以我终于崩溃了,最终来到了 SOF。

这是我的资源文件代码:

using (ResourceWriter rw = new ResourceWriter(@"C:\pathto\errors.resources"))
{
  rw.AddResource("String1", "en-US");
}

很明显,现在我创建了我的 errors.resources 文件,其中包含名为 String1 的字符串资源,其中包含“en-US”的值。

第 2 步:然后,我只需使用以下命令创建我的卫星程序集:

c:\>al /t:lib /culture:en-US /embed:C:\pathto\errors.resources /out:C:\pathto\bin\en-US\MyWeb.Ext.errors.resources.dll

好吧……太酷了。

第 3 步:所以现在在我的项目中:

Thread.CurrentThread.CurrentCulture = newCulture;
Thread.CurrentThread.CurrentUICulture = newCulture;
ResourceManager rm = new ResourceManager("MyWeb.Ext.errors", this.GetType().Assembly);
ViewData["String1"] = rm.GetString("String1");

但无论我做什么......我都无法访问程序集中的字符串资源。我可以在项目中包含我的 errors.resources 文件并以这种方式获取它,但我需要它在这个程序集中,这样我也可以将此程序集用于另一个项目!

有人可以告诉我我在第 3 步可能做错了什么吗?或者我在前面的步骤中做错了什么?

4

1 回答 1

0

您的资源文件相对于您的程序集位于何处?您应该创建一个目录,其中包含资源文件所针对的语言环境的名称(在您的情况下为 en-US),然后将附属程序集放在那里。此目录应与原始程序集位于同一目录中。

于 2014-05-23T19:25:50.203 回答