DLL可以注册/取消注册的最大次数是多少?

时间:2009-08-19 10:29:12

标签: com dll cruisecontrol.net nant

在特定时间段内是否可以注册和注销DLL的最大次数?

这就是我的意思和原因:我有一个持续集成包来构建我的VB6应用程序,并且为了构建解决方案的80个组件中的每一个,我:

  1. 检索每个项目的依赖项 反过来
  2. 注册dll(在NAnt中 使用< comregister unRegister =“false”......>)
  3. 构建项目
  4. 发布输出.dll或.exe 安全的地方
  5. 取消注册dll(在NAnt中使用 < comregister unRegister =“true”... ...>)
  6. 现在,如果我手动构建80个项目中的每个项目,这一切都在100%的时间内起作用;但是,如果我让我的NAnt脚本依次构建所有80个项目(按照正确的顺序),那么构建失败,在CruiseControls的输出中给我这个错误......

    [comregister] Unregistering 1 files
    [comregister] c:\location\myBuild.include(301,4): Error while unregistering 'c:\\[project-location]\lib\myDependentDLLFile.dll' Unable to find an entry point named '**DllUnregisterServer**' in DLL 'c:\\[project-location]\lib\myDependentDLLFile.dll'.
    

    (我不知道'DllUnregisterServer'来自哪里!)

    然后,我构建的每个后续项目都会出现相同的错误,这个项目是在50个项目构建区域附近构建的。我的意思是,前50个项目建设得很好,其余项目依旧失败。

    我已经通过在NAnt内部的comregister调用中使用failonerror =“false”属性来缓解这种情况,但这会让我怀疑这是否正常......!

    理想情况下,我想删除failonerror属性并将真正的错误报告给CruiseControl的日志记录工具。有什么想法或建议吗?

2 个答案:

答案 0 :(得分:1)

没有没有最大值。使用Dumpbin.exe或Depends.exe查看该DLL内部并检查是否实际定义了DllUnRegisterServer入口点。

答案 1 :(得分:0)

我认为对DLL寄存器/取消注册没有任何限制。