#c# #il #ilasm
#c# #il #ilasm
Вопрос:
Учитывая один исходный файл c #, я хотел бы вывести IL (не собранный) из этого одного файла, чтобы позже я мог передавать каждый файл ‘.il’ в ilasm для создания сборок, возможно ли это?
Комментарии:
1. Возможно, если вы дадите немного больше информации, люди смогут дать вам лучшие ответы. Чего именно вы надеетесь достичь и почему?
Ответ №1:
Это не дает прямого ответа на ваш вопрос, но почему бы не скомпилировать, затем использовать ildasm и получить соответствующие разделы?
Комментарии:
1. Поскольку мне нужен промежуточный этап, я изучаю некоторые идеи для распределенного компилятора для c#
2. зачем вам нужна распределенная компиляция для c#
3. @IanNorton: Если компиляция вашего кода на C # занимает более 2-3 минут, вам необходимо купить новый компьютер. Все, что было сделано за последние 10 лет, компилирует код достаточно быстро, чтобы не требовалась распределенная компиляция. В любом случае, вам нужен компилятор для преобразования кода C # в IL. Тот, который поставляется с .NET SDK, довольно хорош…
4. Генерация IL в качестве промежуточного шага была бы медленнее, чем просто компиляция в первую очередь. Формат IL-as-text не является особенно компактным представлением, поэтому вы потратили бы много дополнительного времени на написание больших файлов .il (намного больше, чем исходные файлы .cs), их чтение обратно, их синтаксический анализ и повторное построение тех же таблиц символов, которые компилятор C # уже однажды создавал. Вам было бы лучше использовать пользовательский двоичный промежуточный формат, такой как файлы Delphi .dcu.
Ответ №2:
Итак, вы, вероятно, не сможете сделать это должным образом, и в большинстве случаев вы не захотите. Однако можно разделить компиляцию и компоновку сборки на два этапа, собрав все исходные тексты в модули, а затем связав модули и ресурсы с конечными сборками.
Короткий ответ, получение текстового IL из компилятора C # невозможно на .Net и в любом случае, особой пользы от этого нет.