Подтвердить что ты не робот

Рекомендации по подписке сборок с несколькими проектами и разработчиками

Im ищет рекомендации и рекомендации по применению подписанных сборок в организации с более чем 30 разработчиками, более 20+ решений и более 60 проектов. Использовали Visual Studio Team System 2008 и TFS.

При создании ключа и подписании сборки очень простая и простая процедура, Im обеспокоен тем, как мы справляемся с этим лучшим способом.

Мои мысли до сих пор:

  • Каждое решение, которое обычно имеет от 3 до 20 проектов, будет иметь один файл ключа .pfx, расположенный в корневой папке решения.
  • Каждое решение будет иметь уникальный сильный пароль для ключа.

Будем ли мы сталкиваться с какими-либо проблемами с этим подходом?

Некоторые другие идеи:

  • Используйте один и тот же ключевой файл для всех проектов в разных решениях. Это облегчит нам задачу? Это плохая идея? Возможно ли это?
  • Если каждый проект имеет свой уникальный ключ? Почему, почему бы и нет?

Приветствуется любой ввод, хороший/плохой опыт и рекомендации.:)

4b9b3361

Ответ 1

В прошлом я очень эффективно использовал один ключ для нескольких решений и проектов. Его простой подход, который гарантирует, что только люди, имеющие доступ к файлу закрытого ключа, могут опубликовать сборку, которая проходит проверку сильного имени.

Примечание. Чтобы использовать файл с одним ключом, нам было проще всего добавить файл в качестве ссылки на каждый проект.

Единственный недостаток, который я вижу, заключается в том, что наличие ключевого файла, доступного вашим разработчикам, означает его не совсем личное, как должно быть. В идеале, как можно меньше людей (например, только процесс сборки) должны иметь доступ/знать пароль.

Единственный файловый подход позволяет управлять ключами простым (есть только один), сохраняя при этом преимущества сильного именования.

Ответ 2

В настоящее время мы используем тот же сильный ключ (.SNK) для каждого проекта в нашем решении. В зависимости от вашего проекта, как вы управляете разными ключами для каждого проекта.

Если вам нужна более высокая безопасность, я полагаю, вы могли бы воссоздать ключ для каждого проекта, но это будет кошмар для управления. Помните, что в конце дня SNK просто показывает, что код исходит от вашей компании и не позволяет изменять сборки, это не огромная внутренняя функция безопасности.

Для этого вам следует ограничить свой исходный контроль и посмотреть на использование сервера сборки и т.д., если вы не доверяете/не хотите, чтобы разработчики создавали код.

Ответ 3

Вы также можете сохранить сильный ключ в папке на корневом уровне, на том же уровне, что и все папки проекта. Когда вы выбираете этот файл в свойствах проекта → вкладка подписания, файл ключа копируется в папку проекта. Удалить этот файл. Откройте файл .csproj в блокноте. Найдите следующий тег mykey.snk Вручную отредактируйте путь к ключевому файлу, убедитесь, что вы указали относительный путь из папки проекта. Сохраните файл. Теперь откройте свойства проекта в визуальной студии. Вы можете увидеть обновленный путь, чтобы указать на правильное местоположение.