【问题标题】:FileNotFoundException on MyProject.resourcesMyProject.resources 上的 FileNotFoundException
【发布时间】:2011-10-25 04:30:25
【问题描述】:

我正在尝试将图像添加到按钮(C# Winform,VS2010)。我已经通过在 Resources.resx 文件中添加现有项目来添加资源。然后我将我的图像分配给按钮,一切看起来都很好。当我运行我的程序时,我得到:

An unhandled exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll

Additional information: Could not load file or assembly 'BmsReplayAnalysis.resources, Version=1.0.0.0, Culture=en-US, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified. 

在这段代码中:

public static System.Drawing.Bitmap play1 {
    get {
        object obj = ResourceManager.GetObject("play1", resourceCulture); <-- DIES HERE
        return ((System.Drawing.Bitmap)(obj));
        }
    }

谁能告诉我我做错了什么?

【问题讨论】:

  • 好的,我知道发生了什么。我的代码中有一个 assemblyresolveEventHandler。我有一个 catch all else 声明,将 Myassembly.resources.dll 指向错误的位置

标签: c# visual-studio-2010 image embedded-resource


【解决方案1】:

当你给它一个文件名时,当你运行它时,它会在它用完的文件夹中查找它。如果您在调试模式下运行,它将在调试文件夹中查找 play1。如果它不存在,那就是一个错误。

【讨论】:

  • 那么实现这个的正确方法是什么?我认为它会嵌入到我的可执行文件中?
  • 据我所知,它不会嵌入到您的程序中。唯一的方法是给它一个完整的图像路径并将图像保留在那里。或将图像保持在与可执行文件相同的路径中
  • 如果是这种情况,那么术语嵌入式资源是用词不当。我真的不认为是这样吗?
  • 我正在修复我的 2010 并且会尝试它并在此期间检查 2008
  • 好的,我知道发生了什么。我的代码中有一个 assemblyresolveEventHandler。我有一个 catch all else 声明,将 Myassembly.resources.dll 指向错误的位置。
猜你喜欢
  • 2016-08-06
  • 2013-01-11
  • 1970-01-01
  • 2011-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-17
相关资源
最近更新 更多