Если самостоятельная регистрация используется для установки компонентов как части более крупной программы установки, почему самостоятельная регистрация плоха? Например. саморегистрация VB пользовательских элементов управления или Capicom или что-то еще. Я признаю, что саморегистрация, вероятно, не так безопасна в случае dll, который вы написали сами, но я не обсуждаю это.
MSDN перечисляет несколько причин , почему саморегистрация плоха, воспроизведено здесь:
Откат не будет работать должным образом.
Хорошо, эта причина имеет смысл.
Реклама также не будет работать.
Игнорируя тот факт, что реклама важна только для определенных типов программных клиентов, я не понимаю, почему это проблема. Необходимо рекламировать только основное приложение, а не его компоненты.
Самостоятельная регистрация неправильно поддерживает ключи для каждого пользователя.
И что? Предоставление каждому пользователю доступа к «обычным» компонентам - неплохая вещь, если у вас на компьютере много пользователей, и в этом случае это еще не конец света.
Самостоятельная регистрация более подвержена ошибкам кодирования.
Я определенно могу в это поверить, кроме случаев, когда Microsoft написала dll (в них могут быть ошибки, но я не думаю, что доверять им нецелесообразно). А в случае с tlbs и ocxs, которые были сгенерированы программным обеспечением, ошибки кодирования кажутся маловероятными.
Самостоятельно регистрирующиеся dll могут ссылаться на другие dll.
В случае dll, сгенерированных программами, маловероятно, что саморегистрация не удастся из-за этого, но добавление регистрационных ключей вручную сработало бы. Я бы предпочел, чтобы моя самостоятельная регистрация вернула ошибку, что я пропустил dll.
Я уверен, что это привлечет пламя: /
Редактировать: Вычеркнуты аргументы, которые, на мой взгляд, имеют значение (основанные на отзывах пользователей и моих собственных)