Флаг codebase сообщает regasm, что вы хотите зарегистрировать DLL со ссылкой на фактическое местоположение файла.Это полезно, если у вас есть dll, хранящаяся с развернутым приложением, и вы не хотите, чтобы она была в GAC.Без использования этого флага вы должны поместить свою DLL в GAC для ее полной функциональности.
Флаг regfile сообщает regasm, что вы хотите вывести файл реестра INSTEAD для фактической регистрации библиотеки DLL.
Этиможет использоваться вместе, если вы хотите выводить файл реестра, который также содержит данные для расположения dll, отличного от реестра, и я думаю, что вы предполагали, что это была либо-либо-ситуация.
РЕДАКТИРОВАТЬ: дальнейшее объяснение на основена ваш комментарий.
RegAsm обычно регистрирует основную информацию о .dll, потому что предполагается, что он будет загружен в GAC.Все в GAC регистрируется таким образом, чтобы система могла контролировать и загружать сборку в память.Когда вы работаете в 32-битной системе и используете флаг codebase, он почти напрямую добавляет ключ значения «codebase» к ключам реестра, где определена сборка, а затем устанавливает значение этого в путь, где физически расположен файл .dll.
При регистрации таким образом он в основном сообщает компьютеру и всем, кто хочет использовать сборку, где он может найти код, и как загрузить его в память.Иногда это приводит к тому, что дополнительные ключи выходят за рамки того, что нужно GAC, чтобы вызывающий процесс знал лучший способ доступа к сборке.
Теперь, поскольку вы работаете в 64-битной системе, вы сталкиваетесь с дополнительной проблемой.Существуют правила для разделения 32-битных и 64-битных приложений по всему компьютеру.Вот почему есть 2 папки с программными файлами и почему в реестре есть раздел wow32.Если регистрируется 32-битная dll, ее нужно сохранить в этом разделе реестра, когда это делается с флагом / codebase, чтобы 32-битные приложения могли ее найти (это единственная часть реестра, к которой у них есть доступ).Если бы это был 64-битный dll, он не должен был бы находиться в этой части реестра.
Теперь, из-за этой информации, если вы используете выходные данные файла для записи части сценария реестраустановщик, вы захотите проверить целевой компьютер, чтобы определить, должна ли информация находиться в разделе wow пользователей или в обычном разделе реестра, и внести соответствующие изменения в этот сценарий перед его запуском.