【问题标题】:Winform images (ResourceManager) not visible on Windows 10Winform 图像 (ResourceManager) 在 Windows 10 上不可见
【发布时间】:2016-05-11 05:41:05
【问题描述】:

我有一个在 Windows 7 上运行良好的 Windows 窗体应用程序,但在 Windows 10 中打开时,使用 ResourceManager 的图像文件不显示。应用程序正在使用 .Net 3.5 框架。下面是一段代码:

static readonly System.Resources.ResourceManager rm = new System.Resources.ResourceManager("ImageResources", Assembly.GetExecutingAssembly());

rm.GetObject("ImageName");

以下是错误:

找不到任何适合指定文化的资源或 中立文化。确保正确嵌入或链接到 编译时的程序集,或所有附属程序集 required 是可加载的并且是完全签名的。 System.Resources.MissingManifestResourceException:

是由于某种不兼容还是 Windows 10 以某种方式限制 ResourceManager 类使用所有这些图像?

【问题讨论】:

  • 您确定图片复制正确吗?
  • 在 Windows 7 上安装了相同的设置,工作正常。在 Windows 10 上安装时,图像不显示。
  • 检查在 Windows 10 上安装了什么 .NET 框架。
  • Windows 10 预装了 .Net framework 4。
  • 您的应用程序是使用 .NET 框架 3.5 编译的。您应该安装 v3.5 以避免强制您的应用程序在 v4 中运行。

标签: c# winforms windows-10 resourcemanager


【解决方案1】:

尝试检查目标机器上 Environment.Version 的值(例如一些 MessageBox)。 如果您获得 4.0,那么您需要按照 Stich 博士的建议更改配置文件。 如果您没有配置文件,请按照此处所述创建它: How to: Add an Application Configuration File to a C# Project

并将其内容更改为如下内容:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
  <supportedRuntime version="v2.0.50727" />
</startup>
</configuration>

你可以在supportedRuntime Element page上获得运行时版本

【讨论】:

  • 是不是.net框架不兼容? ResourceManager 因此无法正常加载?
  • 我不能确定 100%,但是如果您在目标机器上检查 Environment.Version 并获得 v4.0(如果您在代码消息框中添加显示 Environment.Version 的值)然后您可以确定它是 .net 框架版本兼容性的原因
【解决方案2】:

这个问题最终通过在rm.GetObject方法参数中添加CultureInfo.CurrentCulture得到解决,即

rm.GetObject("ImageName", CultureInfo.CurrentCulture);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-17
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多