-
Notifications
You must be signed in to change notification settings - Fork 1
Home
See also: Configuration | How To Videos
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.
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.)
White Tie is available as a NuGet Package.
When your project is built in Release mode, White Tie does the following:
- Runs all of the following static analysis tools that are available on your system:
- Code Analysis (Built-in to Visual Studio.)
- StyleCop (NuGet Package or Installer.)
- Code Contracts (Visual Studio Extension.)
- Builds a compiled help file (.chm) for your project, but only if Sandcastle is installed.
- Builds a NuGet package for your project. (Note that in Visual Studio 2013, only if NuGet Package Restore is enabled for your solution.)
- White Tie's output is located in your project's output directory; typically, the _bin\Release_ folder.
- Copies all of your project's output to the solution's local Deployment folder.
See How To Videos for examples. See Configuration for details.
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:
- Include all required assembly attributes as per NuGet's replacement token documentation.
- Set the required MSBuild NuSpec Properties in your project file.
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.