Я не могу создавать проекты со строгой подписью ключа - сообщение в заголовке всегда появляется.
Да, проект изначально был скопирован с другого компьютера. Однако даже если я добавлю новый ключ на вкладке «Подпись» в «Свойствах проекта», эта ошибка все еще отображается.
Я попытался запустить Visual Studio в качестве администратора и попытался вручную добавить ключи в хранилище сертификатов Windows.
Помогите!
Редактировать: я не получаю эту ошибку с новым проектом, но я бы очень хотел, чтобы этот существующий проект работал. Это не сработает, даже если я создам новый сертификат!
Ответы:
Я наконец нашел решение и очень надеюсь, что это поможет кому-то еще.
.csproj
файл для рассматриваемого проекта.Удалите следующие строки кода:
источник
ManifestCertificateThumbprint
иManifestKeyFile
решаем проблему.Перейдите в раздел «Свойства» вашего проекта в рамках визуальной студии. Затем перейдите на вкладку подписи.
Затем убедитесь, что Подпись манифестов Click Once отключена.
Обновленные инструкции:
В вашем обозревателе решений:
источник
Это просто!!
Я решил эту проблему, выполнив следующие действия:
Это оно!!
источник
Удалите следующую информацию, связанную с подписанием сертификата, в хранилище сертификатов.
источник
Попробуйте это: Щелкните правой кнопкой мыши на вашем проекте -> Перейти к свойствам -> Нажмите подписи , который с левой стороны экрана -> Uncheck Подписать нажмите один раз манифестов -> Save & Сложение
источник
Зайдите в свои проекты "Свойства" в рамках визуальной студии. Затем перейдите на вкладку подписи.
Затем убедитесь, что Подпись манифестов Click Once отключена.
ИЛИ
1. Откройте файл .csproj в Блокноте.
2. Удалите следующую информацию, связанную с подписанием сертификата в хранилище сертификатов xxxxx xxxxxx xxxxxxxx.pfx true false `
Работал на меня.
источник
Предполагая, что это личный сертификат, созданный Windows в системе, из которой вы скопировали проект, вы можете использовать диспетчер сертификатов в системе, в которой находится проект, и импортировать сертификат. Запустите диспетчер сертификатов (certmgr) и выберите личные сертификаты, затем щелкните правой кнопкой мыши под списком существующих сертификатов и выберите импорт из задач. Используйте поиск, чтобы найти .pfx в проекте (.pfx из предыдущей системы, которую вы скопировали с проектом). Он должен находиться в подкаталоге с тем же именем, что и каталог проекта. Я знаком с C # и VS, поэтому, если это не ваша среда, может быть .pfx будет где-то еще, или, возможно, это предложение не применимо. После импорта вы должны получить статусное сообщение. Если вам это удалось, ошибка сертификата компиляции должна исчезнуть.
источник
Недостаточно вручную добавить ключи в хранилище сертификатов Windows. Сертификат содержит только подписанный открытый ключ. Вы также должны импортировать закрытый ключ , связанный с открытым ключом в сертификате. Файл .pfx содержит как открытый, так и закрытый ключи в одном файле. Это то, что вам нужно импортировать.
источник
Вы сказали, что скопировали файлы с другого компьютера. После того, как вы их скопировали, вы их «разблокировали»? В частности, необходимо проверить файл .snk, чтобы убедиться, что он не помечен как небезопасный.
источник
Чтобы подписать сборку со строгим именем, используя атрибуты
Открыть
AssemblyInfo.cs
(в$(SolutionDir)\Properties
)AssemblyKeyFileAttribute
илиAssemblyKeyNameAttribute
, указав имя файла или контейнер , который содержит пару ключей для использования при подписании сборки с сильным именем.добавьте следующий код:
источник
Если вам нужно просто построить проект или решение локально, то удаление подписи может быть просто простым решением, как предлагают другие.
Но если у вас есть эта ошибка на вашем сервере сборки автоматизации, таком как TeamCity, где вы собираете свои фактические выпуски для развертывания или распространения, вы можете подумать, как правильно установить этот сертификат в хранилище сертификатов на компьютере сборки, чтобы получить подписанные пакеты в конце сборки.
Как правило, не рекомендуется регистрировать / фиксировать любые сертификаты PFX в системе контроля версий , поэтому вопрос о том, как получить эти файлы на сервере сборки во время процесса сборки, - это немного другой вопрос, но иногда люди хранят этот файл вместе с решением. код, так что вы можете найти его в папке проекта.
Все, что вам нужно сделать, это просто установить этот сертификат под соответствующей учетной записью на сервере сборки.
Загрузите PsExec из Windows Sysinternals .
Откройте командную строку и введите следующее. Он создаст новую командную строку, работающую как локальная система (при условии, что ваш TeamCity работает под учетной записью локальной системы по умолчанию):
> psexec.exe -i -s cmd.exe
В этой новой командной строке перейдите в каталог, содержащий сертификат, и введите имя файла для установки (измените имя файла на ваше):
> mykey.pfx
Запустится мастер импорта сертификатов. Нажмите и выберите все предложенные значения по умолчанию.
Запустите сборку.
Все кредиты идут к Стюарту Noble (и затем далее Лоран Кемпа Я считаю , ☺).
источник