我正在尝试调试实体框架错误:无法加载指定的元数据资源。
所有常用的修复都不适合我,我想看看.csdl,.ssdl和.msl文件是否在资源中(就像它们应该的那样)。
如果您知道可以执行此操作的免费工具,请回答。
注意:我无法访问Red Gates Reflector。我尝试了Resharper的新dotPeek,但它只是显示代码,而不是资源。
我知道如何才能获得这些属于我的dll的资源吗?
答案 0 :(得分:8)
答案 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 相比,我更喜欢这个,因为无需创建帐户,您只需下载并安装即可。看起来是这样的