Announcing the msbuild compatibility toolkit 1.0 (zt)

Source: Internet
Author: User

Announcing the msbuild compatibility toolkit 1.0

 

This is a long post, so I'll give an intro at the top. I 've created a simple system for supporting all versions of. net Framework from vs2005. click through to keep reading about the process, and download the redistributable.

I saw the functionality of msbuild over a year ago at the PDC, and ever since then I have been chomping at the bit for a uniied build solution for interscape's components. you see, when I release a component, I want to make sure that we have a compiled version targeted at each version of. net Framework. up to this point, it's been a 3.2 GB pain in the ass, because I have to have. NET 2002 and. NET 2003 installed side by side. I have to maintain 2 different sets of project and solution files ..... it's just ridiculous.

So a friend of mine e-mailed meJomo Fisher'S entry aboutTargeting. NET 1.1 with msbuild, And I was very excited. After investigating it a bit, I found it to be less that desirable, for several reasons:

·Too much hard-coding: I wanted the targets to build based on the configuration settings in the project. Jomo's target file had the folder hierarchy hard-coded.

· Build folders didn't make sense: following on the heels of the last problem, I didn't like the setup for the build directories. I wanted a hierarchal structure that I cocould use to create per-product build folders that had a predictable layout for my installer projects.

·Conditional constants: Since I already use Conditional compilation constants, I needed to bring the one's in Jomo's target file in line with my system.

· Hacky file locations & names: Jomo wanted to put the files in a "targets" folder, and hard-code more file locations into the system. I wanted a consistent, dynamic naming structure for the files, and to drop them in. NET 2.0 install directory with the rest of the targets.

·Only for C #: most of my code is in VB. So I needed to be able to use the vbc target, which required some digging into msbuild with reflector.

·Only for 1.1: my main concern is compiling. NET 1.1 and. NET 1.0 simultaneously .... NET 2.0 is really just an afterthought at this point, since we are not allowed to release components for it yet.

·Requires editing project files: I wanted to be able to create compatible projects from scratch, so I cocould just get up and go without any effort.

So I spent the past 24 hours (practically straight) working on making everything work the way I wanted. the result is the msbuild compatibility toolkit, a clean, standardized system for extending. net Framework compilation support, with or without Visual Studio 2005. it features:

·Support for Visual Basic and Visual C #

·Support for. NET 1.1 ( Everett ) And. NET 1.0 (Ranier)

·Standardized target files that conform to Microsoft's naming structure (Microsoft. VisualBasic. Everett. Targets, etc .)

·Cleaner, dynamic target files

·Creates an intuitive build directory structure

·Clean, straightforward Conditional compilation Constants

·Custom Visual Studio 2005 project templates that include out-of-the-box compatibility support.

So, along with those features, I had a couple of goals in mind. I wanted to be able to demonstrate in a clean, valid tive manner how simple it was to customize the build system, and I wanted to also show how to create custom templates for vs2005. I found out that, after a bit of digging, that it is super easy to create templates that you can beef up with a ton of pre-defined code. if you need to enforce standards in project naming, assembly references, or versioning... customizable templates are the way to go.

The templates I added are VB and C # templates for creating different types of compatible Web controls. I cocould have gone all out and created new templates for every project type .... but I figured if you needed a special one, You cocould use my templates as an example for modifying your own. after the installer runs, you find them in the "My Projects" section at the bottom of the project list.

OK, enough talk. be sure to read the note at the end of the installer, it has some very important points to note. and this isn't an interscape product, it's just something that I wanted to make available to everyone. feel free to modify the files as you see fit. if you make any major improvements, please email me so that I can put them into a future version.

Download msbuild compatibility toolkit 1.0 now.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.