Skip to content
Dave Sexton edited this page May 24, 2016 · 4 revisions

See also: Configuration | How To Videos

Getting Started

Concept

White Tie is simply a set of MSBuild files. White Tie does not have any assemblies.

When you reference White Tie's NuGet package, NuGet updates your project to import White Tie's MSBuild files.

White Tie unobtrusively extends your project's build process to perform common tasks, such as building a NuGet package for your project, building documentation, running static analysis tools and copying deployable build output to a local directory. Sensible defaults are used, though everything is configurable.

White Tie only has an effect when you build your project in Release mode. White Tie has no effect in Debug mode or custom modes, by default.

Ultimately, the point of White Tie is for you to simply build your project and get the desired output, ready for deployment, with little to no configuration required.

In the future, as build tools change and new build tools emerge, simply upgrading to the latest version of White Tie will automatically bring your project to the latest and greatest state. For example, you won't necessarily have to learn about new NuGet packing features or command-line syntax, documentation configurations, deployment configurations, static analysis configurations, etc. White Tie will simply keep your project up-to-date.

Prerequisites

Your solution's folder structure on disk should be as follows (most folders are optional):

[Solution Root]

Folder that contains the solution file (.sln). The name and path of this folder are not important.

\.nuget

Created automatically by Visual Studio when the NuGet Package Restore feature is enabled for your solution. You must enable NuGet Package Restore in Visual Studio 2013 only. Do not create this folder yourself.

\Build

Contains files related to building, packaging and deployment. (This folder is not required, though it is recommended.)

\Deployment

The local deployment folder for the solution. This folder does not have to exist; White Tie creates it automatically during builds before it copies a project's output.

\Source

Contains projects that may reference White Tie's NuGet package; e.g., portable class libraries. (This folder is not required, though it is recommended.)

\Testing

Contains projects that may reference White Tie's NuGet package; e.g., unit tests and labs. (This folder is not required, though it is recommended.)

Installation

White Tie is available as a NuGet Package.

Usage

When your project is built in Release mode, White Tie does the following:

  1. Runs all of the following static analysis tools that are available on your system:
  2. Code Analysis (Built-in to Visual Studio.)
  3. StyleCop (NuGet Package or Installer.)
  4. Code Contracts (Visual Studio Extension.)
  5. Builds a compiled help file (.chm) for your project, but only if Sandcastle is installed.
  6. Builds a NuGet package for your project. (Note that in Visual Studio 2013, only if NuGet Package Restore is enabled for your solution.)
  7. White Tie's output is located in your project's output directory; typically, the _bin\Release_ folder.
  8. Copies all of your project's output to the solution's local Deployment folder.

See How To Videos for examples. See Configuration for details.

Note

White Tie generates a .nuspec file with some of the default values derived from attributes in the output assembly. NuGet may generate an error when required values are missing. To avoid these errors, you must either:

The first choice is the simplest. In general, you only have to enter non-empty strings for AssemblyCompanyAttribute and AssemblyDescriptionAttribute to resolve the errors; however, you should review all of the attributes anyway to ensure that you get the desired output; e.g., AssemblyTitleAttribute, AssemblyCopyrightAttribute and AssemblyVersionAttribute are also used in the NuGet package.

Clone this wiki locally