Tooling and Project Concepts
Build Configuration
Compare Debug and Release style build settings.
tooling
Build configurations let the same project use different settings for everyday debugging and final release output.
Build Configuration
BuildConfiguration.cs
Replay: real traced execution (multi-file project)
using System;
class Program
{
static void Main()
{
string configuration = "Debug";
bool optimize = configuration == "Release";
bool includeSymbols = configuration != "Release";
Console.WriteLine($"configuration={configuration}");
Console.WriteLine($"optimize={optimize}");
Console.WriteLine($"includeSymbols={includeSymbols}");
}
}
using System;
class Program
{
static void Main()
{
string configuration = "Release";
bool optimize = configuration == "Release";
bool includeSymbols = configuration != "Release";
Console.WriteLine($"configuration={configuration}");
Console.WriteLine($"optimize={optimize}");
Console.WriteLine($"includeSymbols={includeSymbols}");
}
}
using System;
class Program
{
static void Main()
{
string configuration = "Staging";
bool optimize = configuration == "Release";
bool includeSymbols = configuration != "Release";
Console.WriteLine($"configuration={configuration}");
Console.WriteLine($"optimize={optimize}");
Console.WriteLine($"includeSymbols={includeSymbols}");
}
}
configuration ← Debug, optimize ← False, includeSymbols ← True
4{5 static void Main()6 {7 string configuration→ Debug = "Debug"; //@configuration="Release", "Staging"8 bool optimize→ False = configurationDebug == "Release";9 bool includeSymbols→ True = configurationDebug != "Release";1011 Console.WriteLine($"configuration={configurationDebug}");12 Console.WriteLine($"optimize={optimizeFalse}");13 Console.WriteLine($"includeSymbols={includeSymbolsTrue}");14 }outputconfiguration=Debug optimize=False includeSymbols=True
configuration ← Release, optimize ← True, includeSymbols ← False
4{5 static void Main()6 {7 string configuration→ Release = "Release";8 bool optimize→ True = configurationRelease == "Release";9 bool includeSymbols→ False = configurationRelease != "Release";1011 Console.WriteLine($"configuration={configurationRelease}");12 Console.WriteLine($"optimize={optimizeTrue}");13 Console.WriteLine($"includeSymbols={includeSymbolsFalse}");14 }outputconfiguration=Release optimize=True includeSymbols=False
configuration ← Staging, optimize ← False, includeSymbols ← True
4{5 static void Main()6 {7 string configuration→ Staging = "Staging";8 bool optimize→ False = configurationStaging == "Release";9 bool includeSymbols→ True = configurationStaging != "Release";1011 Console.WriteLine($"configuration={configurationStaging}");12 Console.WriteLine($"optimize={optimizeFalse}");13 Console.WriteLine($"includeSymbols={includeSymbolsTrue}");14 }outputconfiguration=Staging optimize=False includeSymbols=True