我负责维护传统的VB6代码,并且在锁定项目的COM DLL时遇到了一个烦人的问题。 (我们称之为 MyProject 和 MyProject.dll )
当我将 MyProject 加载到VB6 IDE中时,我能够编译生成的二进制兼容DLL MyProject.dll 。然后我可以运行我的(经典ASP)Web应用程序,该应用程序挂钩到DLL(或其他任何事情)。
因此,当我尝试重新编译COM DLL时,我收到“权限被拒绝”错误。然后我发现自己必须执行以下步骤才能解锁DLL:
通常这是修复问题的最后一步,并允许我重新编译,这意味着VB6 IDE实际上是锁定已加载项目的DLL!
我的同事向我解释说,这与VB6项目在DLL上使用二进制兼容性的方式有关,但无法建议解决方案。
我在其他地方的搜索在答案方面收效甚微。与此相关的搜索查询往往会返回很多无关的答案(也许我在问搜索引擎的错误)。
我几年前在Stackoverflow上找到的最接近的是this question,但它并不适合这个法案。
有没有人有其他建议可以改善这个?
答案 0 :(得分:3)
保留MyProject.dll
名为MyProject.cmp
的副本,并将二进制兼容设置指向.cmp文件。这样您就不需要重新打开项目文件(步骤4)。
在办理登机手续时,您可以将保持签出标记为跳过第3步。