DeployLX Software Protection System

Command Line Reference

The DeployLX CodeVeil Command Line Tool allows you to run CodeVeil as part of any batch or automated process. The command line tool can be found in the folder where you installed DeployLX, normally C:\Program Files\XHEO INC\DeployLX\[Version]\.


cve [/er] [/es] [/em] [/ex] [/t:<count>] [/sn:<keys>] [/o:<folder>] 
    [/col:<collectType>] <file>

General Options


Required. Path to an assembly or project to veil.

/copyAssemblies <path> /c

Copies additional assemblies to the output folder.

/collectReferences <collectType> /col

Collect assemblies referenced by the veiled assemblies into the output folder. Possible values are: Private, System, Gac, All.

/out <folder> /o

Path to the folder, relative to the project path, where veiled assemblies should be written. Defaults to Veiled.

/sn <keys>  

Path to a set of keys to sign the assembly with. To use a container use container://name instead.


Backs up the original file before processing by renaming the extension to .bak.

/path <folder>  

Adds a folder to the list of search paths. If an assembly dependency cannot be found the additional folders will be searched.

/threads <count> /t

The number of threads to use when veiling.


/obfuscate /ox

Indicates if the assembly should be obfuscated. Default is true.

/obfuscateEverything /oe

Indicates if the public calls to external libraries should also be obfuscated. Default is true.

/excludeserializable [All|Implicit] /exs

Indicates that serializable types should not be obfuscated. Possible values are All and Implicit which excludes serializable classes that do not implement ISerilizable.

/exceptionTranslation /ex

Create a map to support exception translation.

/diagnosticinfo /di

Add diagnostic info to the assembly. Do not release assemblies with diagnostic info.

/rule <pattern> <obfuscate>[<visibility>] [<types>]


Adds an obfuscation rule to the project.


The selection pattern to use when selecting objects. It can include standard ? and * wildcards. You can use regular expressions by prefixing the pattern with a #.


Indicates if objects matching the pattern should be obfuscated.


(Optional) Comma separated list of visibilities the rule applies to - no spaces. Valid values are: Public, Protected, ProtectedInternal, Internal, Private, AllPublic, AllPrivate.


(Optional) Comma separated list of object types the rule applies to - no spaces. Valid values are: Classes, Methods, Events, Fields, Properties, All.

/rule Xheo.CodeVeil.* yes AllPrivate Classes,Methods,Properties 
/ignoreMissing /i

Ignore entries in the project that point to missing types or members.

/disableCrossAssemblyObfuscation /d

Disable cross assembly analysis and obufuscation. Each assembly is veiled independently.


/encryptCode /em

Enables or disables Code Encryption.

/disableMsilEncryption /dme

Disables Code Encryption completely - even when Code Encryption is explicitly selected for a given object.

/encryptStrings /es

Indicates if the user strings should be encrypted. Default is false.

/encryptResources /er

Indicates if the managed resources should be encrypted. Default is false.

/compressResources /cr

Indicates if the managed resources should be compressed. Default is false.

/processSatelliteAssemblies /psa

Enable or disable automatic processing of satellite assemblies.

/killRreflectors /kr

Enables code and meta data that will crash or severely disable most reflection based assembly readers.

/killDebuggers /kd

Adds code to cause debuggers to either crash or execute invalid code when attached to a veiled assembly. Requires Code Encryption.

/killProfilers /kp

Adds code to cause profilers to crash when profiling a veiled assembly. Requires Code Encryption.


/help /?

Display help on using the cve tool.


Do not display the XHEO copyright on startup.


Indicates if status messages should be suppressed.

/pauseOnError /poe

Pauses and waits for key input before exiting when an error is detected during veiling.


Indicates if status output should be verbose.

/notifications <level>  

Sets the notification level requested.


Path where a log of the veiling process will be written to. All veiling events are sent to the log and ignores the <level> value.

/createproject /cp

Creates a project from the given command line arguments and saves it to the given path before processing. Useful for tracking the actual options applied while veiling.

/uiProgress /ui

Shows veiling progress in an external form.

See Also