Есть такая утилита командной строки —
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 этот аддин включен, но почему-то визарда для создания таких проектов нет)?