Сильно называя сторонний 2.0 .dll с VS 2010 Ilasm.exe - PullRequest
9 голосов
/ 07 мая 2011

Итак, у меня есть сторонний .dll, написанный на C # 2.0, который должен быть строго напечатан, и у меня нет доступа к исходному коду.Я нашел несколько статей о том, как разобрать .dll и собрать ее с помощью файла со строго именованным ключом.

Проблема, с которой я столкнулся, заключается в том, что VS2010 перекомпилирует его как .NET 4.0 .dll вместо 2.0.dll (версия, в которой сейчас находится наше приложение).Я не могу включить «новый» dll в мой проект, потому что он дает мне ошибку времени выполнения: «Эта сборка построена в среде выполнения, более новой, чем текущая загруженная среда выполнения, и не может быть загружена».Если я не подпишу dll, то получу «сборка не сильно напечатана».ошибка.

Есть ли способ перекомпилировать этот .dll в рамках 2.0 с использованием VS2010 ilasm.exe?

Ответы [ 2 ]

14 голосов
/ 07 мая 2011

Возможно, вы используете командную строку Visual Studio 2010.Он настроит среду для запуска C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ ilasm.exe при вводе "ilasm.exe".Неправильная версия, вы хотите v2.0.50727 \ ilasm.exe.Введите полное имя.Или скопируйте и отредактируйте vc \ bin \ vsvarsall.bat

1 голос
/ 07 мая 2011

Нет, вы не можете использовать ilasm 4.0 для компиляции в 2.0; вы должны использовать ilasm.exe из директории 2.0; например C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727.

Обратите внимание, что все, что вам нужно для этого - это среда выполнения, а не SDK или VS 2005/2008.

...