Правильно ли я понимаю, что если для утилиты csc.exe сделали отдельный вид проектов, то и для ilasm тоже надо будет делать свой вид проектов (например .ilproj) ?
Это связано с тем, что в .csproj используется вполне конкретный тип MSBuildItem — <Compile>
А если хочется иметь другой тип (например <Assemble>), то надо описывать другой формат проекта, правильно?
Говорят, что когда-то утилита xbuild умела, а потом её поменяли на msbuild и всё перестало работать. Я пробовал поискать пункт создания такого проекта, но сейчас его нет в списке шаблонов проектов (у меня на машине).
В утилите NAnt есть таск ilasm, но NAnt — это вовсе не msbuild.
Однако мне не ясно, какие действия надо осуществить, чтобы его использовать
Ну, то есть, что надо делать, чтобы передать сразу несколько .il-файлов в этот таск? (судя по тому, что там свойство не коллекция — сделать это нельзя)
И примеров нет. Как, например, будет выглядеть файл проекта целиком? Где аддин для monodevelop (вроде бы есть ILAsmBinding, в Add-in Manager этот аддин включен, но почему-то визарда для создания таких проектов нет)?
Здравствуйте, Arsen.Shnurkov, Вы писали:
AS>Правильно ли я понимаю, что если для утилиты csc.exe сделали отдельный вид проектов, то и для ilasm тоже надо будет делать свой вид проектов (например .ilproj) ?
нужно сформировать сборку, в которую сбилдовать код, который невозможно создать компилятором C#.
emit — это более непрозрачный и трудоёмкий способ, чем скормить исходники утилите ilasm
Здравствуйте, Arsen.Shnurkov, Вы писали:
AS>эти два не подойдут, потому что функции-то в них описываются синтаксисом C#, а мне как раз именно это надо обойти.
Ну, тогда первый мой ответ, IlAsmCommand там прям в тексте прописана. Или переспросить на SO.
за переворачивание списка, потому что там было некрасиво.
Тут то же самое! Это же грязный кривой костыль, а не решение которым можно гордиться.
S> ILProj
Вот это бы подошло. Одна проблема — не пользуюсь я VisualStudio. Мне бы такой же под MonoDevelop...
за переворачивание списка, потому что там было некрасиво.
Я злой и я записываю?
Если серьёзно, по ссылке вижу только стёб про "сделать, затем уточнить детали". Цитата:
первые 5 минут положено выносить мозг заказчику вопросом "ну допустим, я этот список разверну. И таки что вы будете с ним делать дальше?".
И мелкий баг — результат не сохранялся — подкинул. Что-то не припомню, чтоб я там за красиво/некрасиво агитировал.
AS>Тут то же самое! Это же грязный кривой костыль, а не решение которым можно гордиться.
Ну да, msbuild сам по себе сборник легаси и компромиссов, точно так же как и любой другой формат файлов сборки. Внутрь него лучше не смотреть (цитата про не смотри куда попало (с) Ницше).
Посмотри обновление прошлого ответа — варианты в виде extensions студии добавил.
Здравствуйте, Arsen.Shnurkov, Вы писали:
S>> ILProj AS>Вот это бы подошло. Одна проблема — не пользуюсь я VisualStudio. Мне бы такой же под MonoDevelop...
Там шаблоны. Открыть студию, получить шаблон проекта, использовать.
И таки да, по-прежнему интересно: что за задача, что синтаксиса шарпа не хватает?
Здравствуйте, Sinix, Вы писали:
S>Здравствуйте, Arsen.Shnurkov, Вы писали:
S>>> ILProj AS>>Вот это бы подошло. Одна проблема — не пользуюсь я VisualStudio. Мне бы такой же под MonoDevelop... S>Там шаблоны. Открыть студию, получить шаблон проекта, использовать.
S>И таки да, по-прежнему интересно: что за задача, что синтаксиса шарпа не хватает?
У меня, например, был случай, когда на C# нужно было реализовать COM-интерфейс, в котором был метод