To develop against .NET 3.5, please use the Cassette.FX35.sln file; as it manages the Debug/Release configurations for you automatically.
"string".IsNullOrWhiteSpace() extension method (Cassette.Utilities).
When combining an array or more than 2 paths, use
In .NET 3.5,
String.Join does not accept
IEnumerable as a valid array. You must use
.ToArray() on any enumerables.
.NET 3.5 does not support the
ISet<T> interface for
HashSet<T>, so we utilize Iesi.Collections to provide that support. Please use the custom class,
HashedSet<T> which provides native HashSet functionality for .NET 4 and uses Iesi for 3.5.
Cassette does conditional includes of Nuget references in all
csproj files. Make sure you take a look at the projects affected by any new upgrade and afterwards, add back the condition in order to not break .NET 3.5 projects.
If a project file requires a .NET 3.5- or .NET 4.0-specific assembly, use conditional a
<reference> in the
csproj file. For example:
<!-- For a single assembly: --> <reference Condition="'$(TargetFrameworkVersion)' == 'v3.5'" ...> <SpecificVersion>false</SpecificVersion> <!-- Important! --> <HintPath>...</HintPath> </reference> <!-- For multi-targeted assemblies: --> <reference ...> <SpecificVersion>false</SpecificVersion> <!-- Important! --> <HintPath Condition="'$(TargetFrameworkVersion)' == 'v3.5'">...</HintPath> <HintPath Condition="'$(TargetFrameworkVersion)' == 'v4.0'">...</HintPath> </reference>
When making changes, to double-check you didn't break .NET 3.5 compatibility, run
build.bat often, or at least before committing any changes.