我负责维持原有VB6的代码,也碰到了一个恼人的问题是关于项目的COM DLL的锁定。 (我们叫它MyProject的和MyProject.dll)VB6 IDE锁定该项目加载的DLL
当我加载MyProject的到VB6 IDE,我可以编译生成的二进制兼容DLL MyProject.dll。然后,我可以运行我的(经典ASP)Web应用程序,该应用程序可以挂接到DLL(或其他任何相关事项)。
所以,当我试图重新编译COM DLL,我得到一个“许可被拒绝”的错误。然后我发现自己不得不进行下面的步骤,以使DLL被解锁:
- 检查我在其他VB6 IDE中打开的任何相关项目
- 回收IIS
- 检查文件ISN” t只读(有时候,如果我已将其检入源控件)
- 关闭项目并重新打开它。
通常这是解决问题的最后一步,并允许我重新编译,这意味着VB6 IDE实际上锁定了加载项目的DLL!
我的同事向我解释说这是用VB6项目与在该DLL的二进制兼容性的方式做,但未能提出一个解决方案。
我的搜索别处已在答案的方式产生了非常小。与此相关的搜索查询往往会返回许多不相关的答案(也许我问的是搜索引擎的错误)。
我能找到#2最接近的是从几年前this question,但它并没有真正适合该法案。
有没有人有任何其他建议可以改善这一点?
你试过杀死asp进程(inetinfo)吗? – 2010-10-06 14:03:01
@GôTô - 回收IIS执行此操作。我知道问题出在VB6环境 – 2010-10-06 14:29:50
您确定吗? – 2010-10-06 15:00:22