Попробуйте AOT .Но будьте осторожны с его ограничениями.
Обновление:
Мне кажется, я слишком быстро набросился на ответ и недостаточно глубоко погрузился, чтобы повернуть егово что-то полезное.AOT предварительно скомпилирует код в разделяемые библиотеки, при правильных условиях это может повысить производительность.
Тем не менее, если у вас есть требование вообще не устанавливать моно среду выполнения на клиентском компьютере (почему?), Я думаю, вам следует попробовать mkbundle / mkbundle2 .Это создаст огромный автономный исполняемый файл (C # Hello World + deps сгенерировал файл размером около 2,5 МБ для моей машины ... С -z я получил около 900 КБ).Вы можете попробовать объединить его с Linker для дальнейшего удаления неиспользуемых частей библиотек, от которых зависит ваше приложение.
Что касается вашего второго вопроса, то компилятор F # сгенерирует CIL как и любой другой компилятор .NET.Так что, это не должно иметь значения.Тем не менее, если ваше приложение содержит либо инструкции IL, которые еще не поддерживаются моно AOT-компилятором (например, вам нужен mkbundle2 для обработки обобщенных типов), либо зависимости от внешних связанных библиотек, которые вы не можете установить в свой Debian, вам не повезло.Думаю, вам придется самостоятельно выполнить несколько проб и ошибок.