Opsi pengompilasi

Artikel ini menjelaskan opsi baris perintah pengompilasi untuk pengompilasi F#. Perintah dotnet build memanggil pengompilasi F# pada file proyek F#. File proyek F# dicatat dengan .fsproj ekstensi.

Lingkungan kompilasi juga dapat dikontrol dengan mengatur properti proyek. Untuk proyek yang menargetkan .NET Core, properti "Bendera lain", di <OtherFlags>...</OtherFlags>, .fsproj digunakan untuk menentukan opsi baris perintah tambahan.

Opsi Kompilator Tercantum Menurut Abjad

Tabel berikut ini memperlihatkan opsi pengompilasi yang tercantum menurut abjad. Beberapa opsi pengompilasi F# mirip dengan opsi pengompilasi C#. Jika demikian, tautan ke topik opsi pengompilasi C# disediakan.

Opsi Pengompilasi Deskripsi
--allsigs Menghasilkan file tanda tangan baru (atau meregenerasi yang sudah ada) untuk setiap file sumber dalam kompilasi. Untuk informasi selengkapnya tentang file tanda tangan, lihat Tanda Tangan.
-a filename.fs Menghasilkan pustaka dari file yang ditentukan. Opsi ini adalah bentuk singkat dari --target:library filename.fs.
--baseaddress:address Menentukan alamat dasar pilihan untuk memuat DLL.

Opsi pengompilasi ini setara dengan opsi pengompilasi C# bernama sama. Untuk informasi selengkapnya, lihat -baseaddress (Opsi Pengompilasi C#).
--codepage:id Menentukan halaman kode yang akan digunakan selama kompilasi jika halaman yang diperlukan bukan codepage default sistem saat ini.

Opsi pengompilasi ini setara dengan opsi pengompilasi C# bernama sama. Untuk informasi selengkapnya, lihat /codepage (Opsi Pengompilasi C#).
--consolecolors Menentukan bahwa kesalahan dan peringatan menggunakan teks berkode warna di konsol.
--crossoptimize[+ or -] Mengaktifkan atau menonaktifkan pengoptimalan lintas modul.
--delaysign[+|-] Menunda penandatanganan assembly hanya menggunakan bagian publik dari kunci nama yang kuat.

Opsi pengompilasi ini setara dengan opsi pengompilasi C# bernama sama. Untuk informasi selengkapnya, lihat -delaysign Opsi Pengompilasi C#).
--checked[+|-] Mengaktifkan atau menonaktifkan pembuatan pemeriksaan luapan.

Opsi pengompilasi ini setara dengan opsi pengompilasi C# bernama sama. Untuk informasi selengkapnya, lihat -checked (Opsi Pengompilasi C#).
--debug[+|-]

-g[+|-]

--debug:[full|pdbonly]

-g: [full|pdbonly]
Mengaktifkan atau menonaktifkan pembuatan informasi debug, atau menentukan jenis informasi debug yang akan dihasilkan. Defaultnya adalah full, yang memungkinkan melampirkan ke program yang sedang berjalan. Pilih pdbonly untuk mendapatkan informasi penelusuran kesalahan terbatas yang disimpan dalam file pdb (database program).

Setara dengan opsi pengompilasi C# dengan nama yang sama. Untuk mengetahui informasi selengkapnya, lihat

/debug (C# Opsi Pengompilasi)
--define:symbol

-d:symbol
Mendefinisikan simbol untuk digunakan dalam kompilasi bersyarat.
--deterministic[+|-] Menghasilkan rakitan deterministik (termasuk GUID versi modul dan stempel waktu). Opsi ini tidak dapat digunakan dengan nomor versi wildcard, dan hanya mendukung jenis penelusuran kesalahan yang disematkan dan portabel
--doc:xmldoc-filename Menginstruksikan pengompilasi untuk menghasilkan komentar dokumentasi XML ke file yang ditentukan. Untuk informasi selengkapnya, lihat Dokumentasi XML.

Opsi pengompilasi ini setara dengan opsi pengompilasi C# bernama sama. Untuk informasi selengkapnya, lihat -doc (Opsi Pengompilasi C#).
--fullpaths Menginstruksikan pengompilasi untuk menghasilkan jalur yang sepenuhnya memenuhi syarat.

Opsi pengompilasi ini setara dengan opsi pengompilasi C# bernama sama. Untuk informasi selengkapnya, lihat -fullpaths (Opsi Pengompilasi C#).
--help

-?
Menampilkan informasi penggunaan, termasuk deskripsi singkat tentang semua opsi pengompilasi.
--highentropyva[+|-] Aktifkan atau nonaktifkan pengacakan tata letak ruang alamat entropi tinggi (ASLR), fitur keamanan yang ditingkatkan. OS mengacak lokasi dalam memori di mana infrastruktur untuk aplikasi (seperti tumpukan dan tumpukan) dimuat. Jika Anda mengaktifkan opsi ini, sistem operasi dapat menggunakan pengacakan ini untuk menggunakan ruang alamat 64-bit penuh pada komputer 64-bit.
--keycontainer:key-container-name Menentukan kontainer kunci nama yang kuat.
--keyfile:filename Menentukan nama file kunci publik untuk menandatangani assembly yang dihasilkan.
--lib:folder-name

-I:folder-name
Menentukan direktori yang akan dicari untuk assembly yang direferensikan.

Opsi pengompilasi ini setara dengan opsi pengompilasi C# bernama sama. Untuk informasi selengkapnya, lihat -lib (Opsi Pengompilasi C#).
--linkresource:resource-info Menautkan sumber daya tertentu ke assembly. Format info sumber daya adalah filename[name[public|private]]

Menautkan satu sumber daya dengan opsi ini adalah alternatif untuk menyematkan seluruh file sumber daya dengan opsi --resource.

Opsi pengompilasi ini setara dengan opsi pengompilasi C# bernama sama. Untuk informasi selengkapnya, lihat -linkresource (Opsi Pengompilasi C#).
--mlcompatibility Mengabaikan peringatan yang muncul saat Anda menggunakan fitur yang dirancang untuk kompatibilitas dengan versi ML lainnya.
--noframework Menonaktifkan referensi default ke assembly .NET Framework.
--nointerfacedata Menginstruksikan pengompilasi untuk menghilangkan sumber daya yang biasanya ditambahkan ke assembly yang menyertakan metadata khusus F#.
--nologo Tidak menampilkan teks spanduk saat meluncurkan pengompilasi.
--nooptimizationdata Menginstruksikan kompilator untuk hanya menyertakan pengoptimalan yang penting untuk menerapkan konstruksi inlined. Menghambat inlining lintas modul tetapi meningkatkan kompatibilitas biner.
--nowin32manifest Menginstruksikan pengompilasi untuk menghilangkan manifes Win32 default.
--nowarn:warning-number-list Menonaktifkan peringatan tertentu yang tercantum menurut angka. Pisahkan setiap nomor peringatan dengan koma. Anda dapat menemukan nomor peringatan untuk peringatan apa pun dari output kompilasi.

Opsi pengompilasi ini setara dengan opsi pengompilasi C# bernama sama. Untuk informasi selengkapnya, lihat -nowarn (Opsi Pengompilasi C#).
--optimize[+|-] [optimization-option-list]

-O[+|-] [optimization-option-list]
Mengaktifkan atau menonaktifkan pengoptimalan. Beberapa opsi pengoptimalan dapat dinonaktifkan atau diaktifkan secara selektif dengan mencantumkannya. Ini adalah: nojitoptimize, nojittracking, nolocaloptimize, nocrossoptimize, notailcalls.
--out:output-filename

-o:output-filename
Menentukan nama assembly atau modul yang dikompilasi.

Opsi pengompilasi ini setara dengan opsi pengompilasi C# bernama sama. Untuk informasi selengkapnya, lihat -out (Opsi Pengompilasi C#).
--pathmap:path=sourcePath,... Menentukan cara memetakan jalur fisik ke output nama jalur sumber oleh kompiler.

Opsi pengompilasi ini setara dengan opsi pengompilasi C# bernama sama. Untuk informasi selengkapnya, lihat /pathmap (Opsi Pengompilasi C#).
--pdb:pdb-filename Menamai file PDB (database program) debug output. Opsi ini hanya berlaku saat --debug juga diaktifkan.

Opsi pengompilasi ini setara dengan opsi pengompilasi C# bernama sama. Untuk informasi selengkapnya, lihat -lib (Opsi Pengompilasi C#).
--platform:platform-name Menentukan bahwa kode yang dihasilkan hanya akan berjalan pada platform yang ditentukan (x86, , Itaniumatau x64), atau, jika nama anycpu platform dipilih, menentukan bahwa kode yang dihasilkan dapat berjalan pada platform apa pun.

Opsi pengompilasi ini setara dengan opsi pengompilasi C# bernama sama. Untuk informasi selengkapnya, lihat -platform (Opsi Pengompilasi C#).
--preferreduilang:lang Menentukan nama budaya bahasa pemrogram output pilihan (misalnya, es-ES, ja-JP).
--quotations-debug Menentukan bahwa informasi penelusuran kesalahan tambahan harus dimunculkan untuk ekspresi yang berasal dari harfiah kutipan F# dan definisi yang tercermin. Informasi penelusuran kesalahan ditambahkan ke atribut kustom dari simpul pohon ekspresi F#. Lihat Kutipan Kode dan Expr.CustomAttributes.
--reference:assembly-filename

-r:assembly-filename
Membuat kode dari assembly F# atau .NET Framework tersedia untuk kode yang sedang dikompilasi.

Opsi pengompilasi ini setara dengan opsi pengompilasi C# bernama sama. Untuk informasi selengkapnya, lihat -referensi (Opsi Pengompilasi C#).
--resource:resource-filename Menyematkan file sumber daya terkelola ke dalam assembly yang dihasilkan.

Opsi pengompilasi ini setara dengan opsi pengompilasi C# bernama sama. Untuk informasi selengkapnya, lihat -resource (opsi pengompilasi C#).
--sig:signature-filename Menghasilkan file tanda tangan berdasarkan assembly yang dihasilkan. Untuk informasi selengkapnya tentang file tanda tangan, lihat Tanda Tangan.
--simpleresolution Menentukan bahwa referensi assembly harus diselesaikan menggunakan aturan Mono berbasis direktori daripada resolusi MSBuild. Defaultnya adalah menggunakan resolusi MSBuild kecuali saat berjalan di bawah Mono.
--standalone Menentukan untuk menghasilkan assembly yang berisi semua dependensinya sehingga berjalan dengan sendirinya tanpa perlu assembly tambahan, seperti pustaka F#.
--staticlink:assembly-name Secara statis menautkan assembly yang diberikan dan semua DLL yang dirujuk yang bergantung pada assembly ini. Gunakan nama assembly, bukan nama DLL.
--subsystemversion Menentukan versi subsistem OS yang akan digunakan oleh executable yang dihasilkan. Gunakan 6.02 untuk Windows 8.1, 6.01 untuk Windows 7, 6.00 untuk Windows Vista. Opsi ini hanya berlaku untuk executable, bukan DLL, dan hanya perlu digunakan jika aplikasi Anda bergantung pada fitur keamanan tertentu yang hanya tersedia pada versi OS tertentu. Jika opsi ini digunakan, dan pengguna mencoba menjalankan aplikasi Anda pada versi OS yang lebih rendah, opsi ini akan gagal dengan pesan kesalahan.
--tailcalls[+|-] Mengaktifkan atau menonaktifkan penggunaan instruksi bahasa perantara ekor, yang menyebabkan bingkai tumpukan digunakan kembali untuk fungsi rekursif ekor. Pemadatan diaktifkan secara default.
--target:[exe|winexe|library|module] filename Menentukan jenis dan nama file dari kode yang dikompilasi yang dihasilkan.
  • exe berarti aplikasi konsol.
  • winexeberarti aplikasi Windows, yang berbeda dari aplikasi konsol karena tidak memiliki aliran input/output standar (stdin, stdout, dan stderr) yang ditentukan.
  • library adalah assembly tanpa titik masuk.
  • moduleadalah modul .NET Framework (.netmodule), yang nantinya dapat dikombinasikan dengan modul lain ke dalam assembly.
--times Menampilkan informasi waktu untuk kompilasi.
--utf8output Mengaktifkan output pengompilasi pencetakan dalam pengodean UTF-8.
--warn:warning-level Mengatur tingkat peringatan (0 hingga 5). Tingkat defaultnya adalah 3. Setiap peringatan diberikan tingkat berdasarkan tingkat keparahannya. Tingkat 5 memberikan lebih banyak, tetapi kurang parah, peringatan daripada tingkat 1.

Opsi pengompilasi ini setara dengan opsi pengompilasi C# bernama sama. Untuk informasi selengkapnya, lihat -warn (opsi pengompilasi C#).
--warnon:warning-number-list Aktifkan peringatan tertentu yang mungkin nonaktif secara default atau dinonaktifkan oleh opsi baris perintah lain. Daftar dipisahkan koma.
--warnaserror[+|-] [warning-number-list] Mengaktifkan atau menonaktifkan opsi untuk melaporkan peringatan sebagai kesalahan. Anda dapat memberikan nomor peringatan tertentu untuk dinonaktifkan atau diaktifkan. Opsi nanti di opsi ambil alih baris perintah sebelumnya di baris perintah. Misalnya, untuk menentukan peringatan yang tidak ingin Anda laporkan sebagai kesalahan, tentukan --warnaserror+--warnaserror-:warning-number-list.

Opsi pengompilasi ini setara dengan opsi pengompilasi C# bernama sama. Untuk informasi selengkapnya, lihat -warnaserror (opsi pengompilasi C#).
--win32manifest:manifest-filename Menambahkan file manifes Win32 ke kompilasi. Opsi pengompilasi ini setara dengan opsi pengompilasi C# bernama sama. Untuk informasi selengkapnya, lihat -win32manifest (Opsi Pengompilasi C#).
--win32res:resource-filename Menambahkan file sumber Win32 ke kompilasi.

Opsi pengompilasi ini setara dengan opsi pengompilasi C# bernama sama. Untuk informasi selengkapnya, lihat -win32res (Opsi Pengompilasi C#).

Peringatan keikutsertaan

Pengompilasi F# mendukung beberapa peringatan keikutsertaan:

Angka Ringkasan Tingkat Deskripsi
21 Rekursi diperiksa pada durasi 5 Peringatkan saat penggunaan rekursif diperiksa untuk kedamaian inisialisasi pada durasi.
22 Pengikatan dijalankan di luar urutan 5 Peringatkan saat pengikatan rekursif dapat dijalankan secara tidak berurutan karena referensi maju.
52 Salinan implisit struktur 5 Peringatkan saat struktur yang tidak dapat diubah disalin untuk memastikan aslinya tidak dimutasi oleh operasi.
1178 Kesetaraan/perbandingan implisit 5 Peringatkan saat deklarasi jenis F# secara implisit disimpulkan menjadi NoEquality atau NoComparison tetapi atribut tidak ada pada jenis.
1182 Variabel yang tidak terpakai n/a Peringatan untuk variabel yang tidak digunakan.
3180 Alokasi timbunan implisit n/a Peringatkan saat lokal yang dapat diubah dialokasikan secara implisit sebagai sel referensi karena telah ditangkap oleh penutupan.
3366 Notasi indeks n/a Peringatkan saat notasi expr.[idx] indeks F# 5 digunakan.
3517 Kegagalan InlineIfLambda n/a Peringatkan saat pengoptimal F# gagal menginline InlineIfLambda nilai, misalnya jika nilai fungsi komputasi telah disediakan alih-alih lambda eksplisit.
3387 op_Implicit konversi n/a Peringatkan saat konversi implisit .NET digunakan pada argumen metode.
3388 Upcast implisit tambahan n/a Peringatkan saat upcast tambahan digunakan secara implisit, ditambahkan di F# 6.
3389 Pelebaran implisit n/a Peringatkan saat pelebaran numerik implisit digunakan.
3390 Komentar dokumen XML cacat n/a Peringatkan ketika komentar dokumen XML salah bentuk dengan berbagai cara.

Anda dapat mengaktifkan peringatan ini dengan menggunakan /warnon:NNNN atau <WarnOn>NNNN</WarnOn> di mana NNNN adalah nomor peringatan yang relevan. (Anda juga dapat menggunakan sintaks <WarnOn>FSNNNN</WarnOn>, misalnya <WarnOn>FS3388</WarnOn>.) Perhatikan bahwa jika WarnOn properti ditentukan beberapa kali, hanya kemunculan terakhir yang digunakan. Untuk menentukan beberapa peringatan, berikan WarnOn properti sekali dengan string yang dipisahkan koma sebagai kontennya: <WarnOn>3388,3559</WarnOn>.

Judul Deskripsi
Opsi Interaktif F# Menjelaskan opsi baris perintah yang didukung oleh penerjemah F#, fsi.exe.
Referensi Properti Proyek Menjelaskan UI untuk proyek, termasuk halaman properti proyek yang menyediakan opsi build.