我有一个程序产品,它额外安装外壳扩展到Windows资源管理器。它使用C#制作并使用.NET Framework v4.0。外壳扩展是通过使用regasm.exe在安装过程中由Inno Setup安装的。一切正常,直到我想安装应用程序的更新版本。问题是我无法更新外壳扩展DLL,因为它加载到资源管理器的内存。在安装Inno Setup的显示我下面的消息更新与Inno安装程序的Windows资源管理器外壳扩展
它说,安装需要终止Windows资源管理器,因为它使用应该由安装程序更新的文件。 它终止浏览器进程,但不会再启动他。这是我的第一个问题。
其实我不想强制用户关机浏览器。但我不知道如何从资源管理器的内存中卸载托管shell。如果通过regasm.exe DLL卸载它仍然保留在内存中。事实上,我甚至无法找到发生这种检查的地方,因为我收到了已经安装的源码。
Inno Setup的文件在用(IssProc.dll)加载项没有帮助,因为尽快通过此加载项终止Windows资源管理器,资源管理器立即重新启动。
我该如何解决这个问题?我怎样才能更好的用户体验更新外壳扩展DLL? 也许有人可以给我一个提示,检查正在使用的文件的代码放在哪里?
O和BTW我正在使用Windows 7 x64。
随着*也许有人可以给我一个提示,其中检查使用中的文件的代码放在*你的意思是在InnoSetup源代码?或者您打算展示如何使用该解决方案的示例脚本? – TLama 2012-07-21 00:14:58
我的意思是Inno Setup源代码。我无法找到类似于上面指定的文件验证的任何内容。我们只在Inno Setup中检查.NET v4。可能这是由Inno Setup引擎进行的检查? – 2012-07-21 08:55:28
我看到由安装向导进行的检查 – 2012-07-21 09:09:02