Мой общий совет, чтобы узнать, какие разрешения CAS вам нужны:
Дайте dll SecurityPermission (ControlEvidence = true, ControlPolicy = true) (и, кроме того, Execution = true и что еще вам может понадобиться)
Поймать Exception и вывести Exception.ToString () не только Exception.Message
Затем вы должны получить точный список первого Разрешившего разрешения, добавьте его и попробуйте снова.