Ошибка проверки строгого имени на сборке VB.NET

У меня приложение VB.Net 1.1 работает нормально после компиляции в Visual Studio. Однако я хочу использовать ILMerge для объединения всех сборок, на которые есть ссылки, в один исполняемый файл, чтобы упростить перемещение. После того, как я отправлю его через ILMerge и попытаюсь запустить, я получаю сообщение об ошибке

«Ошибка проверки строгого имени для assembly.exe» .....

Но ни у одного моего материала нет сильных названий! Я видел это сообщение здесь: Сбой проверки строгого имени и попытался запустить его через sn.exe - Vr merged.exe ', но это дает мне эту ошибку:

«merged.exe не представляет собой сборку со строгим именем»

У кого-нибудь еще была эта проблема раньше? Как мне это исправить?

ОБНОВИТЬ:

Я начинаю чувствовать, что строгая проверка имени здесь не проблема. Я строю против .NET v1.1 и работаю на машине, на которой установлена ​​единственная установленная версия .NET (как оказалось, это Windows 2003). Объединенный исполняемый файл, кажется, умирает с этой ошибкой на каждой машине с Windows 2003, которую я пробую, но если я попытаюсь запустить его на более современной ОС (Vista), он, по крайней мере, запустится, но это не совсем хороший тест, поскольку среда не пригоден для настоящего испытания.

  • Я проверил, что мой app.config имеет правильные настройки (с указанием необходимой и поддерживаемой версии времени выполнения v1.1.4322)
  • Я использую параметр /targetplatform:v1.1 при запуске своих сборок через ILMerge.

ILMerge определенно вызывает проблему (т.е. он отлично работает до того, как я сливаюсь), я просто не знаю, как это исправить.


person Matt Baker    schedule 05.05.2010    source источник
comment
Задокументируйте используемые ссылки. Щелкните значок «Показать все файлы» в обозревателе решений и откройте узел «Ссылки».   -  person Hans Passant    schedule 05.05.2010
comment
Все, что я имею в виду, - это сборка COM-взаимодействия и стандартные системные сборки. Я НЕ усваиваю сборку Interop, а только сборки, которые являются частью этого проекта (один исполняемый файл и DLL), ни одна из которых не подписана. Ни одна из упомянутых сборок также не подписана (кроме сборок Core .NET; но опять же, я не усваиваю их).   -  person Matt Baker    schedule 05.05.2010


Ответы (1)


Мне пришлось найти и загрузить очень старую версию ILMerge (v1.1), чтобы мой объединенный двоичный файл работал; Должна быть ошибка в том, как текущее приложение ILMerge строит сборки .NET 1.1. К счастью, он у нас был внутри, потому что я, вероятно, никогда бы не нашел его в Интернете.

person Matt Baker    schedule 06.05.2010