自定义资源代码抛出错误:无法获取指定或中性区域性的数据
区域性资源加载错误求助
我一直遭遇区域性错误,始终无法解决。此前提交的相关问题被关闭,但未获得有效解决方案,已经尝试多种方法仍无效。以下是代码文件及详细信息:
主代码文件
using Properties; using System; using System.IO; namespace malt { class Programs { static void Main(string[] args) { byte[] med = Properties.Resources.med; Console.WriteLine(med); } } }
Resources.cs文件(与Resources.resx同目录)
using System; using System.CodeDom.Compiler; using System.ComponentModel; using System.Diagnostics; using System.Drawing; using System.Globalization; using System.Resources; using System.Runtime.CompilerServices; namespace Properties { internal sealed class Resources { private static ResourceManager resourceMan; public static CultureInfo resourceCulture = CultureInfo.InvariantCulture; internal Resources() { } [EditorBrowsable(EditorBrowsableState.Advanced)] internal static ResourceManager ResourceManager { get { if (Properties.Resources.resourceMan == null) Properties.Resources.resourceMan = new ResourceManager("Properties.Resources", typeof (Properties.Resources).Assembly); return Properties.Resources.resourceMan; } } [EditorBrowsable(EditorBrowsableState.Advanced)] internal static CultureInfo Culture { get => Properties.Resources.resourceCulture; set => Properties.Resources.resourceCulture = value; } internal static byte[] med => (byte[]) Properties.Resources.ResourceManager.GetObject(nameof (med), CultureInfo.InvariantCulture); } }
完整错误信息
找不到适合指定区域性或非特定区域性的任何资源。请确保在编译时已将“Properties.Resources.resources”正确嵌入或链接到程序集“madt”中,或者确保所有需要的附属程序集都可加载并已完全签名。
已尝试的解决方法
- 已将.resx文件的编译操作设为Embedded Resource
- 文件名无特殊字符
- 调整过Resources.cs中
CultureInfo.InvariantCulture的使用 - 尝试过相关问题的解决方案但无效
- 代码中无
ProblemAssembly.Support这类函数,问题集中在internal static byte[] med => (byte[]) Properties.Resources.ResourceManager.GetObject(nameof (med), CultureInfo.InvariantCulture);行 - 项目中无Properties/Resources.designer.cs文件
- resx文件已包含在项目中
- 使用的不是.NET Core 3.0
- 尝试修改CultureInfo的访问修饰符(public/private/internal)无效
- 尝试修改项目名称无效
- 使用try-catch无法解决问题,代码仍无法运行
内容的提问来源于stack exchange,提问作者Katolik Mamut
相关产品推荐
相关产品推荐

