Есть ли способ предварительно скомпилировать файл MSIL, а затем связать компоновщик .net с компоновкой .net во время компиляции?
Так, например.У меня есть проект.Я компилирую его, декомпилирую в MSIL и настраиваю msil.
Теперь я хотел бы скомпилировать и связать этот настроенный файл msil с другим проектом.
Да, я + COULD +перекомпилировать его как отдельную сборку и просто ссылаться на него, но в данном конкретном случае я не могу этого сделать.Содержимое MSIL должно находиться в целевой сборке.
Есть идеи, если это вообще возможно?Пока что мне не повезло найти что-либо.
- РЕДАКТИРОВАТЬ - Одним из предложений является ILMerge, который может работать.Я сейчас возьму последнюю копию и посмотрю, как это будет.Единственная проблема, с которой я столкнулся, заключается в том, что в прошлом я обнаружил, что отладка после слияния трудна (или, по крайней мере, более трудна, чем если бы я не использовал ILmerge).Я надеялся настроить файл proj для включения скомпилированного MSIL непосредственно в процессе сборки, поэтому в IDE все будет легко отлаживаться.
- РЕДАКТИРОВАТЬ - Ну, похоже, ILMerge не будет работать для этого сценария. Сначала я получил следующее сообщение: Возникла исключительная ситуация при объединении: (TaskId: 32) ILMerge.Merge: сборка 'Blah'не помечен как содержащий только управляемый код.(TaskId: 32) (Рассмотрите возможность использования параметра / zeroPeKind - но сначала прочтите документацию!) (TaskId: 32) в ILMerging.ILMerge.Merge () (TaskId: 32) в ILMerging.ILMerge.Main (String [] args) (TaskId: 32)
ОК.Итак, какого черта, я добавляю / zeropekind и пытаюсь снова.
Без ошибок!
Но, в этом конкретном случае, объединяемая DLL имеет несколько функций, настроенных в MSIL дляэкспортироваться как функции CDECL.В объединенной dll они больше не экспортируются.
Крысы.
Вернуться на круги своя.