Как правильно назвать сборку, которая используется несколькими разработчиками?

У меня и моих коллег есть проект C#, который необходимо зарегистрировать в COM с помощью regasm.exe или RegistrationServices for Excel. В результате сборка должна быть подписана ключом строгого имени. Файл ключа был создан с помощью Visual Studio и передан в хранилище исходного кода.

Каждый раз, когда новый разработчик клонирует репозиторий git, он должен либо перейти на вкладку подписи свойств проекта и повторно ввести пароль для файла.pfx, либо повторно ввести пароль, используя sn.exe в командной строке. Ни один из них не идеален, поскольку оба требуют ручных шагов и устной передачи (простого, широко известного) пароля.

Мы попытались отложить подпись сборки, что позволило продолжить сборку, но не позволило нам зарегистрироваться в COM.

Есть ли способ сделать это, не заставляя всех вручную обновлять файлы ключей.pfx? Спасибо!

2 ответа

Решение

Вам не нужно требовать пароль, если вы не беспокоитесь о том, что кто-то завладеет вашим.snk и не использует его ни для чего. Нет пароля, нет подсказки.

[ComVisible] сборки не требуют строгого имени. Действие по умолчанию для regasm.exe предполагает, что вы развернете сборку в GAC. Это, однако, не является обязательным, дайте ему параметр /codebase, чтобы зарегистрировать его в каталоге, где он находится. Как правило, каталог сборки проекта.

Это также то, что Visual Studio делает, когда вы отмечаете опцию "Зарегистрироваться для взаимодействия COM" в свойствах сборки. Теперь достаточно просто построить проект. Убедитесь, что это все еще совместимо с вашим установщиком. Есть последствия DLL ад, лучше всего решить с изоляцией между прочим.

Другие вопросы по тегам