2011-07-08 73 views
4

我试图调试实体框架错误:无法加载指定的元数据资源。有没有办法看到.net dll中的资源

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

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

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

任何想法如何我可以得到这些资源,据推测在我的DLL?

+0

即使你可能无法获得反射器,它们提供产品的试用14天(假设你没有这样做) – Jesse

+0

而你将花费即使是标准版本是这么便宜的多单人酒吧参观...... –

+0

JetBrain的Resharper dotPeek现在支持查看资源。 – Benjamin

回答

4

我不知道为什么@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); 
      } 
     } 
    } 
} 
相关问题