Skip to content

Build Configurations

derammo edited this page Apr 20, 2020 · 5 revisions

Depending on branch and version, the Helios solution file will have a number of configurations and platforms that are supported. These will be a subset of the following:

Platforms

x64

This is the platform that indicates 64-bit only usage. This is the platform that we currently (1.4, 1.6) build for release when we ship a release. However, it does not support the use of sample data or any other user code execution at design time in Visual Studio or Blend for Visual Studio

Any CPU - 32-bit preferred = False

This platform will also execute as 64-bit on 64-bit platforms. However, it also supports x86 code, which is why it allows the use of Blend and user code for design-time data in the XAML Designer. It is the correct platform to select for UI development work.

The only allowed configuration for this platform is "Debug" and it may never be shipped.

Configurations

Debug

This is the normal debugging configuration. All code development should be done using Debug|x64. Code must execute the same under this configuration as it does under Release, with a few notable exceptions regarding verbosity. However, all functionality must operate the same so it can be tested.

Release

This is the configuration we ship, specifically Release|x64.

Development

This is a configuration that must not be shipped. It is a variation of Debug with additional defines that allows the use of code that actually executes differently than the released product. Please place any development-only code that should not be in the product in #if DEVELOPMENT_CONFIGURATION blocks for use only in this configuration. It should only be built as Development|x64.

Initially, there is only a single Development-only code change. It traces all binding chains and sees if any return to their interface of origin. This creates the ability to detect soft loops see #176 Development build type that causes Control Center to trace loops

NoInstallers (Solution Only)

This configuration does not have project configurations. It builds the Release configuration of every project that is not an installer. It is used for command line building all projects that can be built via msbuild.

JustInstallers (Solution Only)

This configuration does not have project configurations. It builds the Release configuration of every project that is an installer. It is used for command line building the installers via devenv.

Helios 1.6 notes

Helios 1.6 disallows invalid Configuration|Platform configurations. All platforms are defined in top-level Platforms.properties and PlatformsForPlugin.properties project files that are included into all projects.