有没有办法查看.net DLL中的资源

时间:2011-07-08 22:06:21

标签: .net entity-framework dll resources

我正在尝试调试实体框架错误:无法加载指定的元数据资源。

所有常用的修复都不适合我,我想看看.csdl,.ssdl和.msl文件是否在资源中(就像它们应该的那样)。

如果您知道可以执行此操作的免费工具,请回答。

注意:我无法访问Red Gates Reflector。我尝试了Resharper的新dotPeek,但它只是显示代码,而不是资源。

我知道如何才能获得这些属于我的dll的资源吗?

3 个答案:

答案 0 :(得分:8)

尝试Telerik's JustDecompile

他们承诺永远免费

这是展开资源节点的屏幕截图

enter image description here

答案 1 :(得分:5)

我想知道为什么@George删除了他的答案,因为ILDASM确实会在汇编清单中显示资源:

.mresource public Model.csdl
{
  // Offset: 0x00000000 Length: 0x00000394
}
.mresource public Model.ssdl
{
  // Offset: 0x00000398 Length: 0x00000352
}
.mresource public Model.msl
{
  // Offset: 0x000006F0 Length: 0x000002B7
}

无论如何,你花时间等待答案,而不是考虑你已经可用的工具。如何编写简单的控制台应用程序,只显示程序集中包含的资源?

using System;
using System.Reflection;

namespace AssemblyBrowser
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                System.Console.WriteLine("Provide path to assmebly!");
                return;
            }

            try
            {
                var assembly = Assembly.LoadFrom(args[0]);
                foreach (var name in assembly.GetManifestResourceNames())
                {
                    Console.WriteLine("Resource: {0}", name);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: {0}", e.Message);
            }
        }
    }
}

答案 2 :(得分:0)

Jetbrains 也有一个很棒的反编译器——叫做 dotPeek。您可以在此处找到它:https://www.jetbrains.com/decompiler/

与 Telerik 相比,我更喜欢这个,因为无需创建帐户,您只需下载并安装即可。看起来是这样的

enter image description here