ASP.NET MVC中es-XL(拉美西班牙语)资源文件VS2019无法生成DLL问题
解决方案建议
1. 替换非标准文化代码es-XL为标准代码
es-XL并非.NET官方认可的标准文化标识符,VS2019对文化代码的校验逻辑比VS2012更严格。若需覆盖拉美西班牙语区域,可改用es-419(拉丁美洲西班牙语的中性标准文化代码):
- 将资源文件名从
Resources.es-XL.resx修改为Resources.es-419.resx - 同步调整项目中设置的文化标识为
es-419
2. 手动注册自定义文化(需保留es-XL时)
如果业务场景必须使用es-XL这个非标准代码,可在应用启动时注册自定义文化:
- 在
Global.asax.cs的Application_Start方法中加入以下代码:
var cultureInfo = new CultureInfo("es-XL"); // 基于标准拉美西班牙语文化继承格式设置 cultureInfo.NumberFormat = new CultureInfo("es-MX").NumberFormat; cultureInfo.DateTimeFormat = new CultureInfo("es-MX").DateTimeFormat; cultureInfo.TextInfo = new CultureInfo("es-MX").TextInfo; CultureInfo.RegisterCulture(cultureInfo);
- 同时确保该资源文件的生成操作设为
Embedded Resource,自定义工具设为ResXFileCodeGenerator
3. 检查并修正项目文件(.csproj)配置
打开项目的.csproj文件,确认es-XL资源项的配置正确:
- 查找并确保存在类似如下节点,
Culture属性需明确为es-XL,且DependentUpon指向主资源文件:
<EmbeddedResource Include="Resources.es-XL.resx"> <DependentUpon>Resources.resx</DependentUpon> <Culture>es-XL</Culture> </EmbeddedResource>
- 若缺少该配置,手动添加后保存并重新加载项目
4. 清理缓存后重建项目
VS2019的编译缓存可能引发异常,执行以下步骤:
- 点击菜单 生成 > 清理解决方案
- 删除项目目录下的
bin和obj文件夹 - 点击菜单 生成 > 重新生成解决方案
5. 验证资源文件属性设置
选中es-XL对应的资源文件,在属性窗口确认:
- 生成操作:Embedded Resource
- 自定义工具:ResXFileCodeGenerator
- 自定义工具命名空间:与主资源文件保持一致
内容的提问来源于stack exchange,提问作者Sunil Patekar
相关产品推荐
相关产品推荐

