Невозможно создать временный класс -Криптографическая ошибка при подписании сборки

У меня есть подписанная библиотека классов, которая Я хочу создавать сборки с помощью инструмента sgen. Однако я получаю сообщение об ошибке, когда пытаюсь выполнить следующую команду:

$ sgen.exe /a :testsign.dll /force /compiler :/keyfile :..\..\testsign.pfx / подробный / п
Ошибка :Невозможно создать временный класс (result=1 ).
ошибка CS1548 :Криптографический сбой при подписании сборки "[...path...]\TestSign.XmlSerializers.dll" --'Ошибка подписания сборки- -Неверный параметр. '

Если вам нужна дополнительная помощь, введите "sgen /?".

Я проверил ошибку в MSDN , в которой говорится, что

CS1548 возникает при сбое подписи сборки. Обычно это происходит из-за неверное имя файла ключа,неверный путь к файлу ключа или поврежденный ключ файл.

Однако я только что создал ключ, путь правильный, и, насколько мне известно, Visual Studio 2010 не создает поврежденных ключей.

Эту проблему довольно легко воспроизвести.

  1. Используя вставленный здесь код , создайте новую библиотеку классов.
  2. Создайте два класса, один class TestSigningи одинclass Model
  3. перейдите в «Свойства проекта» > «Подписание» и установите флажок «Подписать эту сборку»
  4. создайте новый файл ключа со строгим именем
  5. откройте командную строку Visual Studio (2010)
  6. найдите dll и запуститеsgen /a: [... as above...]

Я думаю, что-то с открытым ключом для ключевого файла.. Но я не могу найти никаких источников относительно того, как я сообщаю sgenо том, какой пароль я использовал для защиты моего ключевой файл.

Я не знаю, что делать дальше. другие потоки, которые я просмотрел здесь, на SO, имеют один и тот же «заголовок» ошибки unable to generate temporary class, но разные детали ошибки, для которых ни один из них не имеет Cryptographic failure(, который я нашел ).

5
задан Default 14 June 2012 в 11:51
поделиться