2010-05-05 3 views
1

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

«Сильная проверка имени не удалось за assembly.exe» .....

Но ни один из моих вещей не силен по имени! Я видел этот пост здесь: Strong Name Validation Failed и попытался запустить его через «Sn.exe -VR merged.exe», но это дает мне эту ошибку:

«merged.exe не представляет сильно названный узел»

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

UPDATE:

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

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

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

+0

Документируйте ссылки, которые вы используете. Нажмите значок «показать все файлы» в обозревателе решений и откройте узел «Ссылки». –

+0

Все, на что я ссылаюсь, это сборка COM-взаимодействия и стандартные сборки системы. Я НЕ интернализую сборку Interop, только сборки, которые являются частью этого проекта (один исполняемый файл и DLL), ни одна из которых не подписана. Ни одна из ссылочных сборок не подписана (кроме сборников Core .NET, но опять же, я не интернализую их). –

ответ

1

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