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.
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., 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:
- The matching Synergy Runtime (or runtime libraries for Synergy .NET) must be available on deployment systems. For example, if you select x86, development systems must have the 32-bit Synergy runtime or runtime libraries. See Synergy .NET Requirements for information on runtime libraries for Synergy .NET.
- If a traditional Synergy application or library does not need to be built as 64-bit, set the build to 32-bit.
- 64-bit applications may not be compatible with libraries that are exclusively 32-bit. For example, if the project uses a 32-bit ActiveX control, you must use x86.
- For a DLL, the recommended setting is Any CPU.
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:
- This setting is available only for traditional Synergy projects and Synergy .NET projects that target .NET Framework. (For projects that target .NET 6 and higher, the version of the Synergex.SynergyDE.synrnt NuGet package that the project references determines the targeted version of the Synergy Runtime.)
- Make sure this setting is no higher than the version of Synergy/DE installed on the system. If it is, you won’t be able to run or debug the built assembly on the development machine.
- The drop-down list does not include version numbers for feature releases. To target the runtime for the current feature release, select “Latest” from the drop-down list.
- The drop-down list omits some versions (e.g., 10.3.1c) because no new features were added to the runtime for those versions. If the version you want to target is omitted, select the previous version — e.g., if you want to target 10.3.1c, select 10.3.1b.
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:
- If this option is set to an environment variable, that environment variable will be used as the ELB path for project references to the ELB. You will need to set that environment variable on deployment machines (e.g., in synergy.ini). If the environment variable is not set on a deployment machine, the Synergy runtime will look for that ELB in the current directory for the running DBR.
- If this option is set to a path, such as c:\myfolder or $(SolutionDir)\$(Configuration), the full path to the ELB on the development machine will be hard-coded in the executable or library built for the referencing project. That hard-coded path will then be used to locate the ELB on deployment machines.
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.
See the Synergex YouTube video Using XML Documentation Comments to Improve IntelliSense. |
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., 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.