Build page of Visual Studio project properties

Use the Build page of project properties in Visual Studio to specify build settings for the project.

To access this page, select a project node in Solution Explorer, select Project > Properties from the Visual Studio menu, and then select the Build tab.

Configuration

Specifies the configuration that settings on the Build page apply to. This can be Active (default), Debug, Release, All Configurations, or a configuration created for the project.

Platform

Specifies the platform that settings on the Build page apply to. The default is Active.

Note

The following settings apply to the configuration/platform combination specified in the Configuration and Platform fields (described above). Settings on this page are used for a build only if the configuration/platform combination for those settings is active for the build. For more information on Configuration and Platform settings, see Configurations, platforms, and profiles and Microsoft documentation on creating and editing configurations (e.g., learn.microsoft.com/en-us/visualstudio/ide/how-to-create-and-edit-configurations).

General

Platform target

Specifies whether the program or library will run as 32-bit or 64-bit. For Synergy .NET this determines which .NET CLR and framework will be used for the assembly.

Any CPU Run as either 32-bit or 64-bit (platform agnostic). If both are available, 64-bit is used unless the “Prefer 32-bit” option is selected. (Any CPU is available only for Synergy .NET.)
x86 Run as 32-bit on Intel-compatible processors.
x64 Run as 64-bit on Intel-compatible processors.
vms Run as an OpenVMS application or library on Windows. (Available only for traditional Synergy.) See Using Visual Studio for Traditional Synergy  for information on OpenVMS development in Visual Studio.
linux32 Run as 32-bit on UNIX platforms. (Available only for traditional Synergy.)
linux64 Run as 64-bit on UNIX platforms. (Available only for traditional Synergy.)

See Developing a traditional Synergy application in Visual Studio  for information on limits and requirements for UNIX and OpenVMS development in Visual Studio.

Note the following:

Target Synergy runtime

Specifies the version of the Synergy Runtime that the executable or library will target. Set this if you are building an assembly for systems with earlier versions of the Synergy Runtime. When building, the compiler will warn you or generate errors if code includes system-supplied routines that are not supported for the selected version. Note the following:

Note

Hovering over an item (a version number) in the “Target Synergy runtime” drop-down list will select that version, even if you don’t click it or press Enter to select it.

Also note that the RUNTIME_TARGET define is set to the runtime compatibility setting for a program. With this define, you can programmatically determine the runtime setting used when the program was built.

Output

Output path

Specifies the output folder for the selected configuration (see Output folders for more information). For traditional Synergy, this field must be set; if it is blank, the error “The OutputPath property is not set...” will be generated when you build the traditional Synergy project. For .NET, if this field is blank it will default to the build directory for the project (e.g., ...obj\debug).

To use an environment variable in this field, enter the environment variable name followed by a colon (e.g., MYVAR:). Do not use an environment variable defined using another environment variable (e.g., an environment variable defined as ANOTHERVAR:\mysubdir.

For a traditional Synergy project the default setting is EXEDIR:, which is set to the following on the Common Properties page of project properties: $(SolutionDir)\$(Configuration)\$(Platform).

For a traditional Synergy Executable Library (ELB) project, the Output path setting is also used as the path for project references to the ELB project. Note the following for ELBs:

XML documentation file

To generate documentation from documentation comments (which are marked by ;;;), select this option and then specify the name of the file that the comments will be saved to. The default extension is .xml, and the default directory is the working directory for the project. See Documentation comments for more information.

This option is not available for traditional Synergy.

Debug/Optimize code

Specifies whether to use just-in-time (JIT) optimization, and specifies the level of debug and stack trace information that will be available, which affects performance.

blank Use base optimizations. (JIT optimization will not occur.)
Debug Generate full debug information (except unreferenced fields and structures) and use base optimizations. (JIT optimization will not occur.)
Debug (full) Generate full debug information (including unreferenced fields and structures) and use base optimizations. (JIT optimization will not occur.)
Optimize Base optimizations and JIT optimization.

Synergy .NET projects built with a debug option result in .pdb files, which have symbolic debug information. For information on .pdb files, see Visual Studio documentation.

Generate serialization assembly

Specifies whether XML serialization assemblies will be generated by the XML Serializer Generator Tool (sgen.exe) when the project is built. Serialization assemblies can improve startup performance for XmlSerializers. See Microsoft documentation for sgen.exe for more information (e.g., hlearn.microsoft.com/en-us/dotnet/standard/serialization/xml-serializer-generator-tool-sgen-exe).

Auto Generate serialization assemblies only if XmlSerializer is used in the project.
Off Prevent serialization assemblies from being generated.
On Generate serialization assemblies (TypeName XmlSerializers.dll) whenever the project is built with the selected configuration.

This option is not available for traditional Synergy.

DLL base address

To specify a preferred base address to use when loading a DLL, specify the address in this field using decimal or hexadecimal format. The address must be 0x10000 aligned. The .NET Framework CLR determines the default base address for a DLL.

This option is not available for traditional Synergy.

Prefer 32-bit

If this option is selected, the application will run as a 32-bit application on both 32-bit and 64-bit Windows. (Otherwise, it will run as a 32-bit application on 32-bit Windows and a 64-bit application on 64-bit Windows when Any CPU is selected.)

This setting is not recommended for DLLs. For assemblies used with IIS, this setting can result in problems that are difficult to track down.

This option is available only with .NET Framework 4.5 or higher. It is not available for traditional Synergy.

Run peverify on output assemblies

Select this option to automatically check generated assemblies with PEVerify when the project is built.

This option is not available for traditional Synergy.

Linker/Librarian

Enable unresolved reference checking during executable library link (-r)

Select this option to enable the Synergy linker (dblink) reference check feature (-r), which checks for unresolved references to routines and methods in ELBs. This behavior happens automatically during builds for DBRs.

This option is available only for traditional Synergy Executable Library (ELB) projects.

Enable unresolved common checking during linking (-c)

Select this option to enable the synergy linker (dblink) to check for unresolved references to commons and global data sections in an executable library or mainline.

This option is available only for the following traditional Synergy project types: Executable Library (ELB), Multiple Mainline (DBR), and Traditional Application (DBR).

Other options

Enter any additional linker (dblink) options you want set. See Linking object modules for information on dblink options. If you specify more than one option in this field, separate options with a space.

This option is available only for traditional Synergy projects.