Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
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):
Folder that contains the solution file (.sln). The name and path of this folder are not important.
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.
Contains files related to building, packaging and deployment. (This folder is not required, though it is recommended.)
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.
Contains projects that may reference White Tie's NuGet package; e.g., portable class libraries. (This folder is not required, though it is recommended.)
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.
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
AssemblyDescriptionAttribute to resolve the errors; however, you should review all of the attributes anyway to ensure that you get the desired output; e.g.,
AssemblyVersionAttribute are also used in the NuGet package.