Note that the objective of the toolkits is to provide you with ready-made implementations, so we encourage you downloading the NuGet packages instead of building from source code.
In order to build the toolkits, follow these steps:
1. Download the source code from GitHub
Clone the repository git://github.com/sharpcrafters/PostSharp-Toolkits.git or download the source code from https://github.com/sharpcrafters/PostSharp-Toolkits.2. Install PostSharp
You need PostSharp to build the toolkits, but we don’t use NuGet to retrieve it from the network. This is because the build script needs to be compatible with our development environment. The minimal version number of PostSharp you need is specified in the dependencies section of the file $\Build\NuGet\Logging\PostSharpDiagnosticsToolkit.nuspec.If you’ve installed PostSharp with the setup program, you can go to the next step. Otherwise, you need to create a file named $\Dependencies\PostSharp\PostSharpDir.Custom.targets, which specifies where PostSharp is installed. Note that this file should not be checked into the source control.
Here is the content of this file for our development environment:
<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="https://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <PostSharpDir>c:\src\PostSharp-2.1\Build\bin</PostSharpDir> </PropertyGroup> </Project>
3. Build from Visual Studio or MSBuild
At this point, you will probably want to open the solution PostSharp.Toolkits.sln and build it.
4. Build the NuGet packages
When all binaries are built, you can create the NuGet packages by calling
msbuild Build\NuGet\NuGet.proj
The usual disclaimer
Of course, this blog post has to come with the usual disclaimer that PostSharp Diagnostic Toolkit uses PostSharp SDK, which is officially undocumented and unsupported. That is, we are happy to show you how things work, but we won’t answer questions related to its implementation. The source code of the toolkits itself is largely undocumented and is provided AS IS, and we won’t accept this kind of criticisms.
Happy PostSharping!
-gael