Медленная регистрация dll с regsvr32 Win7

1328
ghagleit

Я хочу ускорить процесс регистрации DLL с regsvr32. По сути, нам нужно регистрировать 3-6 DLL каждый раз при выполнении задачи сборки, и это занимает до 5 секунд / dll -> иногда сама регистрация занимает больше времени, чем фактическая сборка. Наш CI Server выполняет каждую регистрацию как отдельный шаг.

Знаете ли вы, как сделать regsvr32 быстрее?

1

1 ответ на вопрос

1
snowdude

regsvr32 is a very simple program that simply loads a DLL and calls DllRegisterServer. It's the DLL that's taking the time to register not the regsvr32 process.

If this is a build process under your control on a server under your control you may be able to handle this a little bit smarter. If the list of classes (or other registration data) hasn't changed then you probably don't even need to call regsvr32. As long as you haven't unregistered the data the COM data will remain in the registry pointing to a DLL in a particular location. Just because the DLL may change doesn't mean that any of COM data associated with the DLL has changed.

Спасибо за Ваш ответ. Это то, чего я боялся - мы связаны требованиями регистрировать / де регистрировать каждую DLL для каждого компонента для каждой сборки, чтобы поддерживать машину сборки в чистоте. Похоже, мы должны жить с добавленным временем сборки. ghagleit 10 лет назад 0
Если вы запускаете regsvr32 на одной и той же DLL несколько раз, одна и та же DLL занимает стабильно много времени? Если это так, то похоже, что DLL может делать больше, чем просто добавлять записи реестра. Если нет, то это может быть проблема зависимости DLL. В любом случае вам придется сесть с разработчиками, чтобы разобраться. Удачи. snowdude 10 лет назад 0