Существует ли максимальное количество раз, когда DLL может быть зарегистрирована и незарегистрирована в определенный период времени?Максимальное количество DLL может быть зарегистрировано/незарегистрировано?
Вот что я имею в виду и почему: у меня есть Continuous пакет интеграции, который строит свои VB6 приложения и для того, чтобы построить каждый из 80 компонентов раствора, I:
- извлечения зависимостей каждого проекта в включить
- зарегистрировать DLL (в NAnt используя < comregister UNREGISTER = "ложь" ... ...>)
- построить проект
- публиковать выходной файл .dll или .exe где-то в безопасности
- отменит регистрацию DLL, (в NAnt, используя < comregister UNREGISTER = "истинный" ... ...>)
Теперь это все работает 100% времени, IF Я строю каждый из 80 проектов вручную; Однако, если я получаю мой 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 проектов строят отлично, тогда остальные не работают в очереди.
Я смягчил это, используя атрибут failonerror = "false" внутри вызова comregister внутри NAnt, но это затем вызывает у меня сомнения в отношении того, хорошо это или нет ...!
В идеале, я хотел бы удалить атрибут failonerror и сообщить о реальных ошибках в средствах ведения журнала CruiseControl. Любые мысли или предложения?
Интересно, является ли отказ найти DllUnregisterServer просто догадкой, а фактическая ошибка - это что-то еще ...? Можете ли вы заставить Nant показать ошибку Win32? Возможно, вы можете изменить задачу comregister, чтобы получить больше информации ... DllUnregisterServer - это функция, которую должны экспортировать все COM-серверы DLL, и какой регистрационный код просто слепо звонит, чтобы отменить регистрацию объектов сервера. –