Ошибка строгого имени сборки C #, хотя подписана - PullRequest
0 голосов
/ 17 октября 2018

У меня была проблема с запуском моего приложения на C #, выдавая следующую ошибку при попытке использовать определенную ссылку следующим образом:

Не удалось загрузить файл или сборку 'My3rdPartyAssembly, Version = 1.0.0.0, Culture= нейтральный, PublicKeyToken = null 'или одна из его зависимостей.Требуется строгое собрание.(Исключение из HRESULT: 0x80131044) "

Затем я последовал этот ответ для подписания рассматриваемой сборки.

Я могу подтвердить через Visual Studio и Sn какхорошо, что моя DLL теперь определенно подписана и имеет строгое имя.

Однако я вижу 2 вещи:

  1. В моей подписанной версии приложения я все еще получаю ту же ошибку, что ивыше, как будто сборка не имеет строгого имени.
  2. На моей неподписанной версии, которая до сих пор работала нормально с неподписанной DLL, теперь она выдает ту же ошибку с подписанной версией DLL.

Я не знаю, в чем может быть причина.

Спасибо за помощь.

1 Ответ

0 голосов
/ 19 апреля 2019

Оказывается, мне удалось это решить.Я обновлял стороннюю библиотеку (сборку, которую хочу подписать), чтобы она могла хорошо работать с моим .exe, НО она заменяется неподписанной версией, пришедшей из пакета NuGet.

You 'Мне придется обновить .dll в следующем месте: .dll location

У меня будет инструкция для примера пакета с именем WPFCustomMessageBox.dll .Следуйте фф.шаги по обновлению пакета и отражению его в папке отладки:

  1. Откройте cmd по указанному выше пути.
  2. Введите ff. Вы должны организовать путь в своей системе как структуру папок, и расположение ваших файлов может отличаться от моего :

a.Этот файл получает необходимые файлы из .dll

"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\Ildasm.exe" /all /out=WPFCustomMessageBox.il WPFCustomMessageBox.dll

b.Я не уверен, что это делает, но он готовит файл для следующей команды.

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\Ilasm.exe" "WPFCustomMessageBox.il" /dll /resource="WPFCustomMessageBox.res" /key="publickey.snk"

c.Этот создает подписанный .dll

"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\sn.exe" -R "WPFCustomMessageBox.dll" "pair.pfx"

Введите пароль для вашего файла .pfx, и он должен сделать подписанный .dll.

Я проверил этот метод с помощью Добавление строгого имени к третьемуПартийное собрание .При следующей компиляции должна быть подписана бывшая неподписанная .dll, которая компилируется / копируется в папку Debug.Надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...