如何获取我的进程加载的文件列表?

时间:2009-12-29 19:55:48

标签: .net deployment sysinternals

我正在尝试快速而肮脏地部署项目。我认为运行我的进程很容易,使用一些工具来获取所有加载文件(DLL)的列表,并使用该列表为我的测试部署创建一个复制文件列表。

考虑使用filemon,但那里有很多噪音。它是一个.net项目。

感谢。

5 个答案:

答案 0 :(得分:1)

Process Explorer?

答案 1 :(得分:0)

您应该能够使用.NET的Reflection分析您的应用程序AppDomain并转储已加载的程序集和位置列表。

var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (var assembly in loadedAssemblies)
{
    Console.WriteLine(assembly.GetName().Name);
    Console.WriteLine(assembly.Location);
}

答案 2 :(得分:0)

查看AppDomain.GetAssemblies

For Each Ass As Reflection.Assembly In CurrentDomain.GetAssemblies()
    Console.WriteLine(Ass.ToString())
Next

答案 3 :(得分:0)

已经在另一个question中回答了这个问题。

它的要点是使用当前的appdomain获取程序集列表并循环遍历其加载程序位置。

答案 4 :(得分:0)

如果我理解了您的问题,要进行快速部署,您可以设置项目的所有引用,但框架将“复制本地”设置为true。

这样,当您构建应用程序时,您将在输出目录中拥有所有需要的DLL(好吧,几乎所有引用所需的引用都不会自动复制,因此最好将它们添加为本地引用)。

希望这会有所帮助。如果没有,只说出原因,我会继续尝试。