【问题标题】:Changes in resolving .resx in Visual Studio 2010?在 Visual Studio 2010 中解析 .resx 的变化?
【发布时间】:2010-04-04 11:14:44
【问题描述】:

我正在开发一个非常简单的网页 (MVC2),使用基于资源文件的本地化。

我在单独的程序集中有 MVC2 项目和资源。

资源包含 3 种语言 (Resource.resx, Resource.de.resx, Resource.en.resx, Resource.ja.resx),我通过 ResourceManager 查询它们。

从 .aspx 页面调用:

<% Resources.Res resman = new Resources.Res(); %>
<%=resman.GetString("String1", new System.Globalization.CultureInfo("en")) %><br />
<%=resman.GetString("String1", new System.Globalization.CultureInfo("ja")) %><br />
<%=resman.GetString("String1", new System.Globalization.CultureInfo("de")) %><br />

ResourceManager:

public class Res
{
  private readonly ResourceManager Manager = Resources.Resource1.ResourceManager;

  public string GetString(string id, CultureInfo info)
  {
    return Manager.GetString(id, info);
  }
}

在 VS2008 中编译后的版本是这样的:

String1EN

String1JA

String1DE

在 Visual Studio 2008 中编译,这工作正常,但如果我在 Visual Studio 2010(也是 3.5 作为 TargetFramework)中编译解决方案,我会遇到麻烦。

结果显示如下:

String1DEFAULT

String1JA

String1DEFAULT

我不知道它可能是什么:这仍然是 VS2010 RC 的错误还是我在这里做错了什么?

更新: 我发现它适用于 IIS 7.5,但不适用于 IIS 7.0。不幸的是,它不是我的解决方案。

【问题讨论】:

  • @josh - 修正了这个速记。

标签: .net visual-studio-2008 visual-studio-2010 asp.net-mvc-2 localization


【解决方案1】:

我知道这并不完全是一个答案,但我想到了一些可能对你有所帮助的事情,如果你真的在这方面遇到了困难......

查看 .net 代码并了解发生了什么可能会很有用。如果您想尝试此操作,请执行以下操作:

  • 在 Visual Studio 中,转到工具 -> 选项 -> 调试 -> 符号
  • 符号文件 (.pdb) 位置,输入

    http://msdl.microsoft.com/download/symbols

  • 提供一个路径,其中显示“将符号从符号存储缓存到此目录:”

  • 点击确定
  • 将出现一个对话框,接受条款

现在,当您进行调试时,您应该能够进入资源管理器代码。

如果这仍然对您不起作用并且所有其他方法都失败了,您始终可以通过编写自己的资源管理器来解决您的问题。您可以通过实现 IResourceReader 来做到这一点。我在这里找到了一个示例:

Custom Resource Reader

【讨论】:

    【解决方案2】:

    它应该可以正常工作。所以问题是弄清楚缺少什么:

    您的 bin 目录中正确的子文件夹中是否有正确的 DLL?

    如果您在这些调用之前和之后转储加载的 DLL (AppDomain.CurrentDomain.GetAssemblies()),是否表明它已经加载了 DLL?

    IIS 是否对 DLL 有适当的权限?

    如果你在VS2010中以.NET 3.5模式编译是否可以工作,如果不是,编译的DLL有什么区别?

    【讨论】:

      【解决方案3】:

      我不知道出了什么问题。但是由于昨天发布了 VS2010 和 .NET 4.0,我有机会在发布的版本中试用它,它运行良好。

      所以我猜这只是 RC 中的一个错误,现已修复。

      【讨论】:

      • 感谢您告诉我们...在测试版中处理 resx 存在很多问题,希望他们全部解决
      • 遗憾的是没有。该错误仍然存​​在,仅当您针对 4.0 时才修复;我们的目标是 2.0,但被卡住了:/
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-14
      • 1970-01-01
      • 2011-07-29
      相关资源
      最近更新 更多