Как скомпилировать .il-файлы из MSBuild ?
От: Arsen.Shnurkov  
Дата: 15.02.17 09:09
Оценка:
Есть такая утилита командной строки — ilasm.exe

Правильно ли я понимаю, что если для утилиты csc.exe сделали отдельный вид проектов, то и для ilasm тоже надо будет делать свой вид проектов (например .ilproj) ?
Это связано с тем, что в .csproj используется вполне конкретный тип MSBuildItem — <Compile>
А если хочется иметь другой тип (например <Assemble>), то надо описывать другой формат проекта, правильно?

Говорят, что когда-то утилита xbuild умела, а потом её поменяли на msbuild и всё перестало работать. Я пробовал поискать пункт создания такого проекта, но сейчас его нет в списке шаблонов проектов (у меня на машине).

В утилите NAnt есть таск ilasm, но NAnt — это вовсе не msbuild.

В MSDN есть пример базового таска для вообще утилит командной строки:
https://msdn.microsoft.com/en-us/library/microsoft.build.utilities.tooltask.aspx
When overridden in a derived form, provides functionality for a task that wraps a command line tool.
и пример производного таска для msbuild, отнаследованный от ToolTask конкретно для ILAsm:
https://msdn.microsoft.com/ru-ru/library/microsoft.build.utilities.commandlinebuilder.appendfilenameifnotnull.aspx

Однако мне не ясно, какие действия надо осуществить, чтобы его использовать
Ну, то есть, что надо делать, чтобы передать сразу несколько .il-файлов в этот таск? (судя по тому, что там свойство не коллекция — сделать это нельзя)

И примеров нет. Как, например, будет выглядеть файл проекта целиком? Где аддин для monodevelop (вроде бы есть ILAsmBinding, в Add-in Manager этот аддин включен, но почему-то визарда для создания таких проектов нет)?
Отредактировано 15.02.2017 9:11 Arsen.Shnurkov . Предыдущая версия . Еще …
Отредактировано 15.02.2017 9:10 Arsen.Shnurkov . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.