gpt4 book ai didi

.net - 记录所有使用的 DLL 的版本

转载 作者:行者123 更新时间:2023-12-02 15:42:01 24 4
gpt4 key购买 nike

我想记录我的 .NET 应用程序使用的所有 DLL 的版本。日志输出是在启动时还是在首次使用每个 DLL 时生成并不重要。

我想到的第一个解决方案是迭代与我的程序集位于同一目录中的所有 DLL 文件。但这是我最好的选择吗?有没有更好的方法来做到这一点?重要的是,该解决方案也应该适用于 .NET-Compact-Framework。

最佳答案

编辑:我测试并验证了它可以在 .NET Compact Framework 上运行。

您可以使用Mono.Cecil来做到这一点,一个强大的工具,允许您在 IL 级别打开和检查 .NET 程序集,甚至无需将它们加载到 AppDomain 中。

string path = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase;

// If using Mono.Cecil 0.6.9.0:
AssemblyDefinition myAssembly = AssemblyFactory.GetAssembly(path);

// If using Mono.Cecil 0.9.1.0:
AssemblyDefinition myAssembly = AssemblyDefinition.ReadAssembly(path);

// from there, you can inspect the assembly's references
foreach (ModuleDefinition module in myAssembly.Modules)
{
foreach (AssemblyNameReference assemblyReference in module.AssemblyReferences)
{
// do something with the reference e.g get name, version, etc
string fullName = assemblyReference.FullName;
Version version = assemblyReference.Version;
}
}

关于.net - 记录所有使用的 DLL 的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2584259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com