Сильно называя сторонний 2.0 .dll с VS 2010 Ilasm.exe

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

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

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

2 ответа

Решение

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

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

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

Другие вопросы по тегам