Здесь могут происходить некоторые вещи, и для их решения потребуется немного поработать.
MySql.Data - это строгое имя, подписанное. Чтобы создать файл MySql.Data.dll, на который может ссылаться другой скомпилированный код, вам необходимо иметь доступ к паре ключей, которая используется для подписи файла MySql.Data.dll. У вас нет доступа к этому, только люди MySql имеют (мы надеемся, в любом случае), потому что утечка, которая позволила бы кому-то создать вредоносный MySql.Data.dll и иметь другие компоненты, которые ссылаются на него, используют этот .dll. Сильное именование призвано предотвратить такой случай.
Мое предположение заключается в том, что проект MySql.Data настроен так, чтобы отложить подпись .dll с общедоступной частью пары ключей. У вас нет частной части этой пары ключей, поэтому вы не можете завершить процесс подписи самостоятельно.
Решение состоит в том, чтобы сгенерировать новый файл key.snk, настроить проект на использование этого ключа, отключить отложенное подписание для этого проекта и перестроить.
Проблема, с которой вы столкнетесь, заключается в том, что любые другие библиотеки, которые ссылаются на MySql.Data.dll
, будут делать это со строгим именем, используемым в правильном MySql.Data.dll
. Таким образом, любые другие библиотеки, которые вы используете и которые ссылаются MySql.Data.dll
, должны будут изменить свои ссылки с использованием строгого имени, которое теперь имеет ваша библиотека.
Вам необходимо изменить ссылки на эти библиотеки (либо получив исходный код, либо используя ildasm.exe
). Затем вам нужно изменить ссылки, чтобы использовать вашу библиотеку с новым строгим именем, и перестроить эти библиотеки. Если эти ссылки также подписаны строгим именем, вам придется уйти с новым ключом и повторить тот же процесс с любыми библиотеками, которые ссылаются на эту библиотеку.
Вы можете себе представить, как это может довольно быстро выйти из-под контроля. Лучшим вариантом, если это возможно, было бы создать новую библиотеку, которая ссылается на MySql.Data.dll
, и расширить классы / компоненты, которые вы настроили, не касаясь кода библиотеки MySql.Data.dll
. Это может быть или не быть возможным в зависимости от того, какое поведение вы изменили в отношении этой библиотеки.
person
mdip
schedule
17.09.2017