Langsame DLL-Registrierung mit regsvr32 Win7

1398
ghagleit

Ich möchte den Registrierungsprozess von DLLs mit regsvr32 beschleunigen. Grundsätzlich müssen wir 3-6 dlls registrieren, wenn ein Build-Task ausgeführt wird. Dies dauert bis zu 5 Sekunden / dll. Manchmal dauert die Registrierung selbst länger als der eigentliche Build. Unser CI-Server führt jede Registrierung als separaten Schritt aus.

Wissen Sie, wie Sie regsvr32 schneller machen?

1

1 Antwort auf die Frage

1
snowdude

regsvr32 ist ein sehr einfaches Programm, das einfach eine DLL lädt und DllRegisterServer aufruft . Es ist die DLL, die die Zeit braucht, um sich zu registrieren, nicht den regsvr32-Prozess.

Wenn dies ein Build-Prozess unter Ihrer Kontrolle auf einem Server unter Ihrer Kontrolle ist, können Sie dies möglicherweise etwas intelligenter erledigen. Wenn sich die Liste der Klassen (oder anderer Registrierungsdaten) nicht geändert hat, müssen Sie möglicherweise nicht einmal regsvr32 aufrufen. Solange Sie die Registrierung der Daten noch nicht aufgehoben haben, verbleiben die COM-Daten in der Registrierung und verweisen auf eine DLL an einem bestimmten Ort. Nur weil die DLL geändert werden kann, bedeutet dies nicht, dass sich COM-Daten, die der DLL zugeordnet sind, geändert haben.

Danke für deine Antwort. Das befürchte ich - wir sind verpflichtet, jede DLL für jede Komponente für jeden Build zu registrieren / de zu registrieren, um die Build-Maschine sauber zu halten. Anscheinend müssen wir mit der zusätzlichen Bauzeit leben. ghagleit vor 10 Jahren 0
Wenn Sie regsvr32 mehrmals mit derselben DLL ausführen, dauert die gleiche DLL konsistent lange Zeit? Wenn dies der Fall ist, klingt das so, als würde die DLL mehr tun, als nur Registrierungseinträge hinzuzufügen. Wenn nicht, kann es sich um ein DLL-Abhängigkeitsproblem handeln. In jedem Fall müssten Sie sich mit den Entwicklern zusammensetzen, um das Problem zu lösen. Viel Glück. snowdude vor 10 Jahren 0