gpt4 book ai didi

c# - 在 Windows 7 上加载嵌入式资源

转载 作者:太空宇宙 更新时间:2023-11-03 14:29:16 24 4
gpt4 key购买 nike

我有一个应用程序在我的 WinXP 机器上运行良好。但是,当我尝试在我的 Win7 机器上运行它时,它会在尝试加载嵌入式资源时失败。资源都在那里(我可以使用 Reflector 看到它们)。

失败的行都是以下形式:

Splash.Image = new Bitmap(typeof(ContainerForm).Assembly.GetManifestResourceStream("SplashTest.Resources.Logo.gif"));

它们都失败了,但都出现了同样的异常:

Exception='System.ArgumentException: Parameter is not valid.
at System.Drawing.Bitmap..ctor(Stream stream)

我不明白为什么这在我的 Win7 机器上不起作用,但在我常用的 WinXP 开发机器上却可以。

有什么想法吗?

最佳答案

这里没有太多可能的故障模式。如果找不到资源,Assembly.GetManifestResourceStream() 将返回 null。这将使 Bitmap 构造函数失败并出现指定的异常。那里有点错误,它应该抛出 ArgumentNullException。

无论如何,由于某种原因,程序集似乎没有在您的 XP 机器上使用位图资源构建。使用 Ildasm.exe 仔细检查。双击 Manifest,您应该会看到具有您要求的名称的 .mresource。

更好的鼠标陷阱是使用项目 + 属性添加资源,资源选项卡,单击添加资源按钮上的箭头,添加现有文件并导航到该文件。然后您可以通过自动生成的属性直接引用位图:

 Splash.Image = Properties.Resources.Logo;

关于c# - 在 Windows 7 上加载嵌入式资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3033536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com