Ошибка компиляции исходного кода KeePass 2

Мне всегда было интересно узнать, что находится под капотом популярного менеджера паролей KeePass 2. Сегодня я решил этим заняться. Благо, что KeePass 2 распространяется по свободной лицензии GNU, которая обязывает публиковать исходный код проектов, в том числе, если на их базе было построено что-то ещё. Исходный код можно скачать zip-архивом с сайта SourceForge.net.

Казалось бы, качай, компилируй, изучай! Но не все так просто. При попытки компиляции скачанных исходников Visual Studio выдаст следующую ошибку:

Не удалось импортировать следующий файл ключей: KeePass.pfx. Возможно, файл ключа защищен паролем. Чтобы исправить эту ошибку, повторите попытку импорта сертификата, или вручную установите сертификат в CSP сильного имени с использованием следующего имени контейнера ключей: VS_KEY_66D0808EE0476674

и

Отменен импорт файла ключа “KeePass.pfx”.

Эти ошибки появляются появляются из-за того, что после сборки проекта Visual Studio пытается подписать сборку ключом разработчиков, который в оригинале должен храниться как раз в этом файле. Но в распространяемых исходниках этого ключа, естественно, нет. Иначе любой желающий мог мы внедрить в код любую закладку, подписать его сертификатами разработчиков и выдать свой “троянский” менеджер паролей за оригинальный KeePass.

Отсутствие ключа в KeePass.pfx не убирает желания скомпилировать исходники. После непродолжительных поисков в интернете по запросу KeePass.pfx, я нашёл решение этой проблемы. В свойствах решения “KeePass” и “KeePassLib”, во вкладке “Подписывание” необходимо убрать галочку “Подписать сборку”.

Помимо этого, вкладка “События сборки” в поле “Командная строка события после сборки” содержит следующую команду:

“$(FrameworkSDKDir)bin\sgen.exe” /assembly:“$(TargetPath)” /force /nologo /compiler:/keycontainer:VS_KEY_27A70973F3FC3787 /compiler:/delaysign-

Её тоже необходимо удалить.

После проведения всех описанных выше манипуляций сборка KeePass 2 из исходников должна пройти успешно. Всем хороших форков ;)

Полезная статья? Их будет больше, если вы поддержите меня!

https://money.yandex.ru/embed/small.xml?account=410011399843532&quickpay=small&yamoney-payment-type=on&button-text=06&button-size=l&button-color=orange&targets=%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%B2%D0%B0%D1%8E+%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82+lexpenz.com&default-sum=50&successURL=