Я управляю проектом с открытым исходным кодом и хотел бы подписать двоичные файлы, выпущенные в бинарном пакете проекта. Я использую файлы Visual Studio csproj
и sln
для управления и создания моего проекта, а также для распространения этих файлов как части исходных пакетов проекта.Каков рекомендуемый способ управления пары ключевых слов с сильным именем для проекта с открытым исходным кодом?
Как я могу подписать полученные двоичные файлы моей сборки и не должен распространять файл ключа-ключа snk
? Если я использую Visual Studio для подписи сборок, каждый файл проекта теперь нуждается в копировании пары ключей для сборки. Мне не удобно распространять ключ-пару, даже если она защищена паролем.
Edit:
Другой нюанс в том, что некоторые узлы в проекте доступе к другу через грант InternalsVisibleToAttribute
и построить те друг через ссылку проекта. Следовательно, такие сборки должны использовать сильное имя при обращении к подписанной сборке. Однако, если пара ключей не распределена, то как конечные пользователи могут создавать источники и поддерживать отношения проекта? Если используется временный файл пары ключей, не изменится ли токен открытого ключа подписанных сборок, нарушив ссылки InternalsVisibleToAttribute
?
Поскольку мне нужно распространять файлы проекта и решения, а так как для создания решения требуется сборка ключей (при подписании включена), должен ли я также распространять «фиктивную» пару ключей, чтобы конечные пользователи может построить без необходимости манипулировать файлами проекта? Кажется громоздким, чтобы проверить файлы проекта, которые запрещают подписывание, только чтобы переключать этот параметр каждый раз, когда производится релиз. –
Вы можете сделать следующее: добавьте шаг сборки, который будет проверять, существует ли файл .snk и запускает sn.exe, чтобы сгенерировать новый, если это необходимо. Затем он будет построен прямо из репозитория для других пользователей. – sharptooth