Visual Basic compiler options listed by category
Article 09/15/2021
14 contributors
Feedback
In this article
The Visual Basic command-line compiler is provided as an alternative to compiling programs from within the Visual Studio integrated development environment (IDE). The following is a list of the Visual Basic command-line compiler options sorted by functional category.
Every compiler option is available in two forms: -option
and /option
. The documentation only shows the -option
form.
Compiler output
Option
Purpose
-nologo
Suppresses compiler banner information.
-utf8output
Displays compiler output using UTF-8 encoding.
-verbose
Outputs extra information during compilation.
-modulename:<string>
Specify the name of the source module
-preferreduilang
Specify a language for compiler output.
Optimization
Option
Purpose
-filealign
Specifies where to align the sections of the output file.
-optimize
Enables/disables optimizations.
Output files
Option
Purpose
-doc
Process documentation comments to an XML file.
-deterministic
Causes the compiler to output an assembly whose binary content is identical across compilations if inputs are identical.
-netcf
Sets the compiler to target the .NET Compact Framework.
-out
Specifies an output file.
-refonly
Outputs only a reference assembly.
-refout
Specifies the output path of a reference assembly.
-target
Specifies the format of the output.
.NET assemblies
Option
Purpose
-addmodule
Causes the compiler to make all type information from the specified file(s) available to the project you are currently compiling.
-delaysign
Specifies whether the assembly will be fully or partially signed.
-imports
Imports a namespace from a specified assembly.
-keycontainer
Specifies a key container name for a key pair to give an assembly a strong name.
-keyfile
Specifies a file containing a key or key pair to give an assembly a strong name.
-libpath
Specifies the location of assemblies referenced by the -reference option.
-reference
Imports metadata from an assembly.
-moduleassemblyname
Specifies the name of the assembly that a module will be a part of.
-analyzer
Run the analyzers from this assembly (Short form: -a)
-additionalfile
Names additional files that don't directly affect code generation but may be used by analyzers for producing errors or warnings.
Debugging/error checking
Option
Purpose
-bugreport
Creates a file that contains information that makes it easy to report a bug.
-debug
Produces debugging information.
-nowarn
Suppresses the compiler's ability to generate warnings.
-quiet
Prevents the compiler from displaying code for syntax-related errors and warnings.
-removeintchecks
Disables integer overflow checking.
-warnaserror
Promotes warnings to errors.
-ruleset:<file>
Specify a ruleset file that disables specific diagnostics.
Help
Option
Purpose
-?
Displays the compiler options. This command is the same as specifying the -help
option. No compilation occurs.
-help
Displays the compiler options. This command is the same as specifying the -?
option. No compilation occurs.
Language
Option
Purpose
-langversion
Specify language version: 9|9.0|10|10.0|11|11.0.
-optionexplicit
Enforces explicit declaration of variables.
-optionstrict
Enforces strict type semantics.
-optioncompare
Specifies whether string comparisons should be binary or use locale-specific text semantics.
-optioninfer
Enables the use of local type inference in variable declarations.
Preprocessor
Option
Purpose
-define
Defines symbols for conditional compilation.
Resources
Option
Purpose
-linkresource
Creates a link to a managed resource.
-resource
Embeds a managed resource in an assembly.
-win32icon
Inserts an .ico file into the output file.
-win32resource
Inserts a Win32 resource into the output file.
Miscellaneous
Option
Purpose
@ (Specify Response File)
Specifies a response file.
-baseaddress
Specifies the base address of a DLL.
-codepage
Specifies the code page to use for all source code files in the compilation.
-errorreport
Specifies how the Visual Basic compiler should report internal compiler errors.
-highentropyva
Tells the Windows kernel whether a particular executable supports high entropy Address Space Layout Randomization (ASLR).
-main
Specifies the class that contains the Sub Main
procedure to use at startup.
-noconfig
Do not compile with Vbc.rsp
-nostdlib
Causes the compiler not to reference the standard libraries.
-nowin32manifest
Instructs the compiler not to embed any application manifest into the executable file.
-platform
Specifies the processor platform the compiler targets for the output file.
-recurse
Searches subdirectories for source files to compile.
-rootnamespace
Specifies a namespace for all type declarations.
-sdkpath
Specifies the location of Mscorlib.dll and Microsoft.VisualBasic.dll.
-vbruntime
Specifies that the compiler should compile without a reference to the Visual Basic Runtime Library, or with a reference to a specific runtime library.
-win32manifest
Identifies a user-defined Win32 application manifest file to be embedded into a project's portable executable (PE) file.
-parallel[+|-]
Specifies whether to use concurrent build (+).
-checksumalgorithm:<alg>
Specify the algorithm for calculating the source file checksum stored in PDB. Supported values are: SHA1 (default) or SHA256. Due to collision problems with SHA1, Microsoft recommends SHA256 or better.
See also