2016-10-11 7 views

ответ

6

Оба инструмента ildasm и ilasm построены с использованием CoreCLR из этого репо: https://github.com/dotnet/coreclr. Они включают в себя аналогичные функции, такие как версии, поставляемые с Windows (без GUI и т. Д.).

Есть пакеты nuget, которые включают их также (https://www.nuget.org/packages?q=ildasm), но они специфичны для платформы, а также требуют использования подходящей версии CoreCLR, поэтому они не просто потребляют через nuget. Самый простой способ запустить их на вашей платформе - это просто создать их из источника из репозитория coreclr.

+0

Это гораздо лучший ответ, чем мой. Спасибо за публикацию. Я не уверен, как я пропустил coreCLR, что может решить некоторые проблемы. – Doug

+0

Есть ли версия этих инструментов, уже скомпилированных или я создаю репозиторий для их получения? –

+0

@JavierHolguera, как я уже упоминал выше, вы можете загружать и использовать их из пакетов nuget, но вам нужно загрузить правильный индивидуальный пакет nuget для вашей операционной системы. –

2

Не существует встроенного инструмента Microsoft, который обслуживает эти функции в Linux, и в настоящее время он не встроен в dot-net-core.

Однако Mono позволяет сборку и разборку IL код:

Installation Instructions can be found here.

То, что вы ищете:

ilasm - For assembling 
monodis - For disassembling 

Они находятся в пакете моно-утилитами:

eg В Debian 8 я сделал следующее:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF 
echo "deb http://download.mono-project.com/repo/debian jessie" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list 
sudo apt-get update 
apt-get install mono-devel mono-utils 

Однако FYI, для тех, кто пытается создать экспорт, Mono не представляется обрабатывать синтаксис экспорта x64.

+1

Стоит отметить, что ['ikdasm' лучше подходит для разборки, чем' monodis'] (http://stackoverflow.com/q/26373496/21501). –