Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何找出哪个缺少的DLL使.NET应用程序在启动时崩溃?_.net_Dll_Installation_Crash - Fatal编程技术网

如何找出哪个缺少的DLL使.NET应用程序在启动时崩溃?

如何找出哪个缺少的DLL使.NET应用程序在启动时崩溃?,.net,dll,installation,crash,.net,Dll,Installation,Crash,当对第三方程序集的依赖项添加到典型的.NET应用程序中时,很容易忘记将它们添加到安装程序中。这个问题往往只有在安装应用程序之后才会暴露出来,并且以启动时崩溃的形式出现,几乎没有可用的有用信息 找出哪些程序集需要添加到安装程序中的最佳工具和技术是什么?Dependency Walker是一个很棒的小实用程序,它遵循应用程序或DLL的依赖关系链,并突出显示缺少的任何程序集。对于最终用户来说,使用它并不是很直观,但如果你开始使用它,你会发现自己丢失了任何东西 全自动构建有助于减少人为组件,从而减少错误

当对第三方程序集的依赖项添加到典型的.NET应用程序中时,很容易忘记将它们添加到安装程序中。这个问题往往只有在安装应用程序之后才会暴露出来,并且以启动时崩溃的形式出现,几乎没有可用的有用信息


找出哪些程序集需要添加到安装程序中的最佳工具和技术是什么?

Dependency Walker是一个很棒的小实用程序,它遵循应用程序或DLL的依赖关系链,并突出显示缺少的任何程序集。对于最终用户来说,使用它并不是很直观,但如果你开始使用它,你会发现自己丢失了任何东西


全自动构建有助于减少人为组件,从而减少错误。如果每次都自动构建,你知道每个构建都是一样的,所以一旦你让它工作一次,它就会一直工作

我们使用像和这样的工具


如果您正在寻找有助于您找出崩溃原因的工具,请在。如果在启动应用程序之前启动它,请设置日志文件位置并启用完全日志记录,它将报告绑定程序集的任何尝试,并列出任何失败。

取决于安装程序的功能。VS集成安装项目可以自动拾取任何相关部件。您可能需要检查安装程序是否具有类似的功能


另一方面,您可以指示VS项目将所有依赖项复制到输出目录,并将其中的所有文件包含到安装程序中。

依赖项Walker对于.Net Assemblies不是很有用。我的应用程序是由CCNET使用MSBuild构建的,它也运行自动验收测试,但当前不测试安装程序。我想这可能是尽早发现问题的一种方法,但我特别请求帮助查找问题已经发生的原因。因此,您的请求不是在阻止问题发生的事情之后,而是在告诉您应用程序在客户端计算机上崩溃时丢失了哪个.dll之后?是的,嗯,希望先在测试机上啊,我第一次误解了这个问题。请看我对fuslogvw的编辑。我知道fuslogvw,但我希望它更易于使用。哦,好吧!谢谢。我正在使用WiX,并明确列出了要包含的文件。我不知道有任何WiX工具可以帮助您,因此您可能希望坚持我的建议,从输出目录中拾取所有文件。这是我能想到的最简单的。如果项目是从输出目录运行的,那么在目标计算机上安装之后也应该运行。