Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описываются параметры командной строки компилятора для компилятора F#.
dotnet build Команда вызывает компилятор F# в файлах проекта F#. Файлы проекта F# отмечены расширением .fsproj .
Среду компиляции также можно контролировать, задав свойства проекта. Для проектов, предназначенных для .NET Core, <OtherFlags>...</OtherFlags> свойство "Другие флаги" используется .fsprojдля указания дополнительных параметров командной строки.
Параметры компилятора в алфавитном порядке
В следующей таблице показаны параметры компилятора, перечисленные в алфавитном порядке. Некоторые параметры компилятора F# похожи на параметры компилятора C#. В этом случае предоставляется ссылка на раздел параметров компилятора C#.
| Параметр компилятора | Описание |
|---|---|
--allsigs |
Создает новый (или повторно создает существующий) файл подписи для каждого исходного файла в компиляции. Дополнительные сведения о файлах подписей см. в разделе "Подписи". |
--always-inline |
Всегда развертывайте встроенные функции, включая без оптимизации. По умолчанию неоптимизируемые сборки F# 11 предпочитают вызываемые методы, где это возможно для встроенной отладки. |
-a filename.fs |
Создает библиотеку из указанного файла. Этот параметр является короткой формой --target:library filename.fs. |
--baseaddress:address |
Указывает предпочтительный базовый адрес для загрузки DLL. Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /baseaddress (параметры компилятора C#). |
--checknulls[+|-] |
Включает ссылочные типы, допускающие значение NULL,, добавленные в F# 9. |
--codepage:id |
Указывает, какую кодовую страницу следует использовать во время компиляции, если требуемая страница не является текущей кодовой страницей по умолчанию для системы. Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /code pages (параметры компилятора C#). |
--consolecolors |
Указывает, что ошибки и предупреждения используют цветной текст в консоли. |
--crossoptimize[+ or -] |
Включает или отключает оптимизацию между модулями. |
--delaysign[+|-] |
Задержка подписывает сборку только общедоступной частью ключа строгого имени. Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /delaysign (параметры компилятора C#). |
--checked[+|-] |
Включает или отключает создание проверок переполнения. Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /checked (параметры компилятора C#). |
--debug[+|-]-g[+|-]--debug:[full|pdbonly]-g: [full|pdbonly] |
Включает или отключает создание отладочной информации или задает тип отладочной информации для создания. Значение по умолчанию — это fullпозволяет подключиться к работающей программе. Выберите pdbonly , чтобы получить ограниченные сведения об отладке, хранящиеся в файле pdb (база данных программы).Эквивалентен параметру компилятора C# того же имени. Дополнительные сведения см. в разделе /debug (параметры компилятора C#). |
--define:symbol-d:symbol |
Определяет символ для использования в условной компиляции. |
--deterministic[+|-] |
Создает детерминированную сборку (включая GUID версии модуля и метку времени). Этот параметр нельзя использовать с подстановочными номерами версий и поддерживает только внедренные и переносимые типы отладки. |
--doc:xmldoc-filename |
Указывает компилятору создавать примечания XML-документации к указанному файлу. Дополнительные сведения см. в разделе XML Documentation. Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /doc (параметры компилятора C#). |
--fullpaths |
Указывает компилятору создавать полные пути. Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /fullpaths (параметры компилятора C#). |
--help-? |
Отображает сведения об использовании, включая краткое описание всех параметров компилятора. |
--highentropyva[+|-] |
Включите или отключите рандомизацию пространства адресов с высокой энтропией (ASLR), функцию повышенной безопасности. ОС случайным образом определяет расположения в памяти, где загружается инфраструктура для приложений (например, стек и куча). Если этот параметр включен, операционные системы могут использовать эту случайность для использования полного 64-разрядного адресного пространства на 64-разрядном компьютере. |
--keycontainer:key-container-name |
Задает контейнер ключа для строгого имени. |
--keyfile:filename |
Указывает имя файла открытого ключа для подписывания созданной сборки. |
--lib:folder-name-I:folder-name |
Указывает каталог для поиска сборок, на которые ссылается ссылка. Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /lib (параметры компилятора C#). |
--linkresource:resource-info |
Связывает указанный ресурс с сборкой. Формат сведений о ресурсе filename[name[public|private]]Связывание одного ресурса с этим параметром является альтернативой внедрению всего файла ресурсов с параметром --resource .Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /linkresource (параметры компилятора C#). |
--mlcompatibility |
Игнорирует предупреждения, которые отображаются при использовании функций, предназначенных для совместимости с другими версиями машинного обучения. |
--noframework |
Отключает ссылку по умолчанию на сборку платформа .NET Framework. |
--nointerfacedata |
Указывает компилятору опустить ресурс, который он обычно добавляет в сборку, содержащую метаданные F#. |
--nologo |
При запуске компилятора не отображается текст баннера. |
--nooptimizationdata |
Указывает компилятору включить только оптимизацию, необходимую для реализации встроенных конструкций. Подавляет перекрестную встраивание, но повышает совместимость двоичных файлов. |
--nowin32manifest |
Указывает компилятору опустить манифест Win32 по умолчанию. |
--nowarn:warning-number-list |
Отключает определенные предупреждения, перечисленные по числу. Разделите каждый номер предупреждения запятой. Вы можете обнаружить номер предупреждения для любого предупреждения из выходных данных компиляции. Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /nowarn (параметры компилятора C#). |
--optimize[+|-] [optimization-option-list]-O[+|-] [optimization-option-list] |
Включает или отключает оптимизации. Некоторые параметры оптимизации можно отключить или включить выборочно, перечислив их. Это: nojitoptimize, , nojittrackingnolocaloptimize, nocrossoptimize. notailcalls |
--out:output-filename-o:output-filename |
Указывает имя скомпилированной сборки или модуля. Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /out (параметры компилятора C#). |
--pathmap:path=sourcePath,... |
Определяет способ сопоставления физических путей и выходных имен исходных путей компилятором. Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /pathmap (параметры компилятора C#). |
--pdb:pdb-filename |
Именует выходной файл PDB (база данных программы). Этот параметр применяется только при --debug включении.Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /pdb (параметры компилятора C#). |
--platform:platform-name |
Указывает, что созданный код будет выполняться только на указанной платформе (x86илиItaniumx64) или, если выбрано имя anycpu платформы, указывает, что созданный код может выполняться на любой платформе.Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /platform (параметры компилятора C#). |
--preferreduilang:lang |
Задает предпочитаемое имя языка и региональных параметров языка вывода (например, es-ES, ja-JP). |
--quotations-debug |
Указывает, что дополнительные сведения об отладке следует выдавать для выражений, производных от литерала кавычек F# и отраженных определений. Сведения об отладке добавляются в настраиваемые атрибуты узла дерева выражений F#. См . кавычки кода и expr.CustomAttributes. |
--reference:assembly-filename-r:assembly-filename |
Делает код из сборки F# или платформа .NET Framework доступной для скомпилированного кода. Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /reference (параметры компилятора C#). |
--reflectionfree |
Избегает зависимого от отражения структурного форматирования. F# 11 может создавать значимые записи и выходные данные объединения ToString . См. форматирование типов без отражения. |
--resource:resource-filename |
Внедряет управляемый файл ресурсов в созданную сборку. Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /resource (параметры компилятора C#). |
--sig:signature-filename |
Создает файл подписи на основе созданной сборки. Дополнительные сведения о файлах подписей см. в разделе "Подписи". |
--simpleresolution |
Указывает, что ссылки на сборки должны разрешаться с помощью правил Mono на основе каталогов, а не разрешения MSBuild. По умолчанию используется разрешение MSBuild, за исключением случаев, когда выполняется в Mono. |
--standalone |
Указывает, чтобы создать сборку, содержащую все его зависимости, чтобы она выполнялась самостоятельно, не требуя дополнительных сборок, таких как библиотека F#. |
--staticlink:assembly-name |
Статически связывает данную сборку и все ссылки на библиотеки DLL, зависящие от этой сборки. Используйте имя сборки, а не имя библиотеки DLL. |
--subsystemversion |
Указывает версию подсистемы ОС, которую будет использовать созданный исполняемый файл. Используйте 6.02 для Windows 8.1, 6.01 для Windows 7, 6.00 для Windows Vista. Этот параметр применяется только к исполняемым файлам, а не библиотекам DLL и должен использоваться только в том случае, если приложение зависит от определенных функций безопасности, доступных только в определенных версиях ОС. Если этот параметр используется, и пользователь пытается выполнить приложение в более низкой версии ОС, он завершится ошибкой с сообщением об ошибке. |
--tailcalls[+|-] |
Включает или отключает использование инструкции tail IL, что приводит к повторному использованию кадра стека для рекурсивных функций хвоста. Этот параметр по умолчанию включен. |
--target:[exe|winexe|library|module] filename |
Указывает тип и имя файла созданного скомпилированного кода.
|
--times |
Отображает сведения о времени компиляции. |
--utf8output |
Включает выходные данные компилятора печати в кодировке UTF-8. |
--warn:warning-level |
Задает уровень предупреждения (от 0 до 5). Уровень по умолчанию — 3. Каждое предупреждение предоставляется на уровне на основе его серьезности. Уровень 5 дает больше, но менее серьезных предупреждений, чем уровень 1. Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /warn (параметры компилятора C#). |
--warnon:warning-number-list |
Включите определенные предупреждения, которые могут быть отключены по умолчанию или отключены другим параметром командной строки. Список разделен запятыми. |
--warnaserror[+|-] [warning-number-list] |
Включает или отключает параметр для отправки предупреждений в виде ошибок. Вы можете указать определенные номера предупреждений, которые будут отключены или включены. Параметры позже в командной строке переопределяют параметры ранее в командной строке. Например, чтобы указать предупреждения, которые не нужны в качестве ошибок, укажите --warnaserror+--warnaserror-:warning-number-list.Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /warnaserror (параметры компилятора C#). |
--win32manifest:manifest-filename |
Добавляет файл манифеста Win32 в компиляцию. Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /win32manifest (параметры компилятора C#). |
--win32res:resource-filename |
Добавляет в компиляцию файл ресурсов Win32. Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /win32res ((C#) Compiler Options). |
Предупреждения о согласии
Компилятор F# поддерживает несколько предупреждений о выборе:
| Число | Итоги | Уровень | Описание |
|---|---|---|---|
| двадцать один | Проверка рекурсии во время выполнения | 5 | Предупреждайте, когда рекурсивное использование проверяется на инициализацию звука во время выполнения. |
| двадцать два | Привязки, выполненные вне порядка | 5 | Предупреждайте, когда рекурсивная привязка может быть выполнена вне порядка из-за ссылки на пересылку. |
| 52 | Неявные копии структур | 5 | Предупреждайте, когда неизменяемая структура копируется, чтобы убедиться, что исходный объект не мутируется операцией. |
| 1178 | Неявное равенство и сравнение | 5 | Предупреждайте, когда объявление типа F# неявно выводится NoEquality или NoComparison атрибут отсутствует в типе. |
| 1182 | Неиспользуемые переменные | Н/Д | Предупреждать о неиспользуемых переменных. |
| 3180 | Неявные выделения кучи | Н/Д | Предупреждайте, когда изменяемый локальный объект неявно выделяется как эталонная ячейка, так как она была захвачена закрытием. |
| 3186 | Отсутствует объявление метаданных | Н/Д | Уведомляйте, когда узел метаданных F# не имеет соответствующего объявления. Может указывать на сломанную сборку; Может потребоваться перекомпиляция. |
| 3366 | Нотация индекса | Н/Д | Предупреждать, когда используется нотация expr.[idx] индекса F# 5. |
| 3388 | Дополнительная неявная рассылка | Н/Д | Предупреждайте, когда неявно используется дополнительная рассылка, добавленная в F# 6. |
| 3389 | Неявное расширение | Н/Д | Предупреждайте, когда используется неявное числовое расширение. |
| 3390 | Неправильные xml-комментарии | Н/Д | Предупреждать, когда комментарии XML-документации неправильно сформированы различными способами. |
| 3395 | Преобразование неявных аргументов метода | Н/Д | Предупреждайте, когда неявное преобразование используется для сопоставления типа аргумента метода. |
| 3517 | Сбой InlineIfLambda | Н/Д | Предупреждайте, если оптимизатор F# не может встраивать InlineIfLambda значение, например если вычисляемое значение функции было предоставлено вместо явной лямбда-лямбда-функции. |
| 3559 | Тип, выводимый как obj | Н/Д | Предупреждать, когда тип неявно выводится как obj. Предложить добавить явные аннотации типа. |
| 3560 | Изменены все поля в копии записи | Н/Д | Предупреждайте, когда выражение копирования и обновления записи изменяет все поля. Рекомендуется использовать синтаксис построения записей. |
| 3570 | Неоднозначные отмены или сокращенные | Н/Д | Предупреждайте, когда "_" неоднозначно используется как символ отбрасывания и как сокращение функции в одном и том же контексте. |
| 3579 | Интерполяция нетипизированной строки | Н/Д | Предупреждать, когда интерполированные строки содержат нетипизированные значения. Рекомендуется использовать типизированные спецификаторы формата. |
| 3582 | Функция, скрывающая вариант объединения | Н/Д | Предупреждать, когда определение функции непреднамеренно затеняет случай объединения. Используйте круглые скобки для снятия неоднозначностей. |
| 3878 | Недопустимый атрибут в регистре объединения с полями | Н/Д | Предупреждайте, если атрибут недействителен для использования в вариантах объединения с полями. |
Эти предупреждения можно включить с помощью /warnon:NNNN или <WarnOn>NNNN</WarnOn> где NNNN указан соответствующий номер предупреждения.
(Можно также использовать синтаксис <WarnOn>FSNNNN</WarnOn>, например <WarnOn>FS3388</WarnOn>.) Обратите внимание, что если свойство WarnOn указано несколько раз, учитывается только последнее вхождение. Чтобы указать несколько предупреждений, укажите WarnOn свойство один раз с разделительной запятой строкой в качестве его содержимого: <WarnOn>3388,3559</WarnOn>
Языковая версия и отступ
Поддержка языков зависит от группы компонентов пакета SDK. В пакете SDK .NET 11.0.100 требуется --langversion:preview F# 11.2.<LangVersion>preview</LangVersion>
План выпуска вышестоящего выпуска перечисляет F# 11.2 в качестве запланированного по умолчанию .NET для пакета SDK 11.0.200. Компилятор, реализующий F# 11.2, также принимает --langversion:11.2. Поддерживаемые нумерованные режимы начинаются с F# 8; значение по умолчанию latestи latestmajor зависит от установленного компилятора.
Нестрогая отступная режим удаляется, включая более ранние нумерованные режимы. Языковая версия не изменяет доступность библиотеки или API среды выполнения.
Параллельная компиляция
Чтобы сократить время сборки, компилятор F# 11 включает параллельную компиляцию по умолчанию, включая проверку на основе графов, оптимизацию и создание IL. Сохраняйте детерминированные сборки; параллелизм не требует недетерминированных выходных данных.
Для устранения неполадок или сравнения производительности для конкретного проекта отключите параллельную компиляцию:
<PropertyGroup>
<ParallelCompilation>false</ParallelCompilation>
</PropertyGroup>
Используется --parallelcompilation- для отключения или --parallelcompilation+ включения. Доступный параллелизм зависит от зависимостей источника, ядер и параметров оптимизации; Правила порядка файлов остаются неизменными. Сведения о производительности инструментов см. в разделе " Производительность инструментов " для сравнения.
Списки диагностики
Компилятор игнорирует нераспознанные идентификаторы диагностики в списке --warnaserror , в то время как распознанные коды предупреждений F# по-прежнему применяются. Это помогает использовать общие параметры сборки, содержащие диагностические идентификаторы из других компиляторов.
Дополнительные уведомления о перекрывающихся записях см. в таблице предупреждений о распространении. Отсутствующие атрибуты подписи, которые являются ошибками в F# 11, см. в атрибутах семантики компилятора.
Связанные статьи
| Заголовок | Описание |
|---|---|
| Параметры окна "Интерактивный F#" | Описывает параметры командной строки, поддерживаемые интерпретатором F#, fsi.exe. |
| Справочник по свойствам проектов | Описывает пользовательский интерфейс для проектов, включая страницы свойств проекта, которые предоставляют параметры сборки. |