【问题标题】:Determine if executable file has any .net dependencies确定可执行文件是否具有任何 .net 依赖项
【发布时间】:2011-05-26 07:56:46
【问题描述】:

我想确定一个文件是否对 .net 框架有任何依赖关系。问题:我想在不使用任何第三方应用程序的情况下做到这一点。

我希望有一些隐藏的方法可以用于此。

感谢您的帮助, 埃文

【问题讨论】:

  • 由于是 c#,我认为它有 .net 作为依赖项
  • 在任何额外的上下文之外,“文件”不依赖于任何东西。您是指确定 .dll 或 .exe 是本机还是 .NET?
  • @Ethan 是的,很抱歉我没有指定。
  • @Woot4Moo 我将加载 VB6 可执行文件、C# 可执行文件等

标签: c# .net dependencies


【解决方案1】:

类似的东西:

Assembly a = Assembly.LoadFrom(
      pathToAssembly);
   AssemblyName [] an = 
      a.GetReferencedAssemblies();
   foreach (AssemblyName name in an) 
      Console.WriteLine(name.ToString());  

...感谢Determining .NET Assembly and Method References

【讨论】:

  • 问题是这段代码不适用于本机文件......这是我需要它做的。
  • 我将使用此代码,如果出现错误,我会知道它不是用 .net 编写的。感谢您的帮助!
【解决方案2】:

.NET 可执行文件的标头中有您可以查找的特殊字段,但即使是本机 EXE 也可以隐式依赖 .NET,例如通过调用用 .NET 编写的 COM 服务。

【讨论】:

  • 我明白了,所以我需要查看 PE 标头才能找到此信息?
【解决方案3】:

本质上,C# 应用程序很可能会链接到标准 C# 库。如果您在谈论标准库之外的另一个库,我不知道这是否可能。在这种情况下,您所说的“第三方”到底是什么意思?

【讨论】:

  • 有些公司为这样的事情生产产品。我不想使用它,我想通过代码来实现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-25
  • 2022-01-25
  • 1970-01-01
  • 2010-10-10
  • 2015-01-24
  • 2015-07-05
相关资源
最近更新 更多