2011-07-08 72 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); 
      } 
     } 
    } 
} 
相關問題