繁体   English   中英

启动应用程序时有时会出现FileNotFoundException

[英]FileNotFoundException sometimes when launching application

为了自动更新我的WPF应用程序,我有这个策略:

  • (1)process.exe启动
  • process.exe查找update =>有更新
  • process.exe生成自身=> process_copy.exe的副本
  • process.exe启动process_copy.exe并带有“update”参数
  • process.exe退出
  • (2)process_copy.exe启动
  • process_copy.exe查看“更新”参数,下载更新到process.exe
  • process_copy.exe启动process.exe
  • process_copy.exe退出
  • process.exe启动

请注意,我的应用程序使用DL​​L。

这个策略是有效的,除了在HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ Windows \\ CurrentVersion \\ Run启动时启动应用程序的一些时间(不是每次)

有时它在(2)崩溃,有一个

System.IO.FileNotFoundException未处理Message =“无法加载文件或程序集'ManagedWinapi,Version = 0.3.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一。

我不明白它为什么会崩溃。 如果它可以从(1)开始,为什么它(有时)不能从(2)开始?

有人有解释吗?

提前感谢您的回答

选项0:你知道'ManagedWinapi'的依赖吗? 如果没有,请使用Reflector确定它们。 找到其中一个可能存在问题?

选项1:尝试运行ProcessMonitor以确定偶尔丢失应用程序的具体内容。 (“或其中一个依赖” - 可以是任何数量的东西。

选项2:这是一个间歇性的问题。 您的复制操作是否异步,或者您是否绝对确定“process_copy.exe”PLUS是否已更新您可能正在复制的任何其他组件?

尝试使用AppDomain.CurrentDomain.AssemblyResolve事件来查看其查找文件的内容和位置

Finnaly,我已经在我的应用程序中集成了这个dll,所以我没有更多...这很丑但是工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM