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

Vac*_*ano 5 .net dll resources entity-framework

我试图调试实体框架错误:无法加载指定的元数据资源.

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

如果你知道一个可以做到这一点的免费工具,请回答它.

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

知道我怎么能得到这些属于我的dll的资源吗?

Con*_*rix 8

试试Telerik的JustDecompile

他们保证永远免费

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

在此输入图像描述


Lad*_*nka 6

我不知道为什么@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
}
Run Code Online (Sandbox Code Playgroud)

无论如何,您都花时间在等待答案,而不是考虑现有工具。编写简单的控制台应用程序将向您显示程序集中包含的资源,该怎么办?

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);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


New*_*per 5

Jetbrains 也有一个很棒的反编译器 - 称为 dotPeek。您可以在这里找到它: https: //www.jetbrains.com/decompiler/

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

在此输入图像描述