Это ограничение безопасности.Проще говоря, если вы строго назовете свою сборку, вы даете гарантию потребителям вашей сборки, что только ваша сборка и ее зависимости будут загружены во время выполнения.Злоумышленники не смогут заменить вашу сборку самозванцем (если, конечно, у них нет вашего ключа).
Если ваша сборка со строгим именем ссылается на сборку со слабым именем, эта гарантия не может быть выполнена, поскольку ее зависимостиможет быть заменено самозванцами.Вот почему вы получаете сообщение об ошибке компиляции.
Ваши варианты:
- Удалите строгое имя из вашей сборки.
- Строго назовите третье лицокод во время компиляции.Это легко в вашем случае, потому что вы строите из исходного кода.
- Строго назовите сторонние двоичные файлы, используя ILMerge .Это привлекательный вариант, если вы строите не из источника, а третье лицо не подписало свою сборку.