Create a no Form Wizard for children template, use static properties to take value from Main Wizard.
using System;
using System.Collections.Generic;
using Microsoft.VisualStudio.TemplateWizard;
using System.Windows.Forms;
using EnvDTE;

namespace CustomWizard
    public class NewWidgetTemplateWizard : IWizard
        private UserInputForm _inputForm;
        private string _projectName;
        private int _portNumber;
        private string _releaseSchema;
        private Guid _projectGuid;
        #region Implementation of IWizard

        public void RunStarted(object automationObject, Dictionary<string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams)

                    _inputForm = new UserInputForm();
                    _projectName = _inputForm.ProjectName;
                    _portNumber = _inputForm.PortNumber;
                    _releaseSchema = _inputForm.ReleaseSchema;
                    _projectGuid = Guid.NewGuid();

                        _projectName );

            catch (Exception ex)

        private void SetUpChild()
            NewWidgetTemplateWizardChild.PortNumber = this._portNumber;
            NewWidgetTemplateWizardChild.ProjectName = this._projectName;
            NewWidgetTemplateWizardChild.ReleaseSchema = this._releaseSchema;
            NewWidgetTemplateWizardChild.ProjectGuid = this._projectGuid;
Supper simple solution..

Categories: Visual studio 10/up | VS 2005 | VS 2008

<VSTemplate Version="2.0.0" Type="ProjectGroup"
        <Name>New Widget Templates</Name>
        <Description> inlucde new widget template and widgetTests template</Description>
            <ProjectTemplateLink ProjectName="Widgets.$safeprojectname$">
            <ProjectTemplateLink ProjectName="Widgets.$safeprojectname$.Tests">
    <Assembly>CustomWizard, Version=, Culture=Neutral, PublicKeyToken=fbf8d46e0d2fda8f</Assembly>


Categories: Visual studio 10/up | VS 2005

ILmerge.exe download link from Microsoft.


For example, the following command could be issued to combine one primary assembly and two secondary assemblies into a single merged DLL file:

ilmerge /out:Merged.dll Primary.dll Secondary1.dll Secondary2.dll

using wildcard:
ilmerge /wildcards /out:Merged.dll Primary.dll Secondary*.dll

ilmerge /log:log.txt /out:Merged.dll Primary.dll Secondary1.dll Secondary2.dll

Categories: VS 2005 | VS 2008

September 22, 2010
@ 09:55 AM
Author: Carlos J. Quintero (Microsoft MVP) Applies to: Microsoft Visual Studio .NET 2002
Date: June 2008   Microsoft Visual Studio .NET 2003
Updated: March 2009   Microsoft Visual Studio 2005
      Microsoft Visual Studio 2008


This article provides a list of known project type Guids.

More Information

Every Visual Studio project has a project type (Windows project, Smart Device project, Web Site project, etc.) and in some cases more than one type (subtypes or flavors).

Every project type is identified by a unique Guid, so every project has one or more project type Guids.

Project type Guids are stored generally in the project file:


But for some special projects (such as some database projects) and projects lacking a file (such as Web Site projects), the project type is stored also in the solution file:

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SqlServerProject1", "SqlServerProject1.vbproj", "{BE5F0BE0-93CD-4FCE-A853-9096A442DF1B}"

Note: Do not confuse the project type Guid with the project guid that identifies a project within a solution.

The main project type of a project is returned by the automation model through the EnvDTE.Project.Kind property, which is a string containing the Guid that identifies the project type. To get all the project type Guids of a project you have to read the project or solution file, or use the IVsAggregatableProject interface as described in the article HOWTO: Get the project flavor (subtype) of a Visual Studio project from an add-in.

The project type Guids are stored in the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<version>\Projects where <version> is:

  • 7.0 for Visual Studio .NET 2002
  • 7.1 for Visual Studio .NET 2003
  • 8.0 for Visual Studio 2005
  • 9.0 for Visual Studio 2008

However, not all the Guids stored in that registry key are actual project types. Some of them are used only to provide project templates (for C# and VB.NET projects) and others have other purposes. The following table lists known project type Guids.

Note: The Guids are provided all uppercase because the case in the registry doesn't always match the case in the project file.

Project Type Description Project Type Guid
Windows (C#) {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
Windows (VB.NET) {F184B08F-C81C-45F6-A57F-5ABD9991F28F}
Windows (Visual C++) {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
Web Application {349C5851-65DF-11DA-9384-00065B846F21}
Web Site {E24C65DC-7377-472B-9ABA-BC803B73C61A}
Distributed System {F135691A-BF7E-435D-8960-F99683D2D49C}
Windows Communication Foundation (WCF) {3D9AD99F-2412-4246-B90B-4EAA41C64699}
Windows Presentation Foundation (WPF) {60DC8134-EBA5-43B8-BCC9-BB4BC16C2548}
Visual Database Tools {C252FEB5-A946-4202-B1D4-9916A0590387}
Database {A9ACE9BB-CECE-4E62-9AA4-C7E7C5BD2124}
Database (other project types) {4F174C21-8C12-11D0-8340-0000F80270F8}
Test {3AC096D0-A1C2-E12C-1390-A8335801FDAB}
Legacy (2003) Smart Device (C#) {20D4826A-C6FA-45DB-90F4-C717570B9F32}
Legacy (2003) Smart Device (VB.NET) {CB4CE8C6-1BDB-4DC7-A4D3-65A1999772F8}
Smart Device (C#) {4D628B5B-2FBC-4AA6-8C16-197242AEB884}
Smart Device (VB.NET) {68B1623D-7FB9-47D8-8664-7ECEA3297D4F}
Workflow (C#) {14822709-B5A1-4724-98CA-57A101D1B079}
Workflow (VB.NET) {D59BE175-2ED0-4C54-BE3D-CDAA9F3214C8}
Deployment Merge Module {06A35CCD-C46D-44D5-987B-CF40FF872267}
Deployment Cab {3EA9E505-35AC-4774-B492-AD1749C4943A}
Deployment Setup {978C614F-708E-4E1A-B201-565925725DBA}
Deployment Smart Device Cab {AB322303-2255-48EF-A496-5904EB18DA55}
Visual Studio Tools for Applications (VSTA) {A860303F-1F3F-4691-B57E-529FC101A107}
Visual Studio Tools for Office (VSTO) {BAA0C2D2-18E2-41B9-852F-F413020CAA33}
SharePoint Workflow {F8810EC1-6754-47FC-A15F-DFABD2E3FA90}
XNA (Windows) {6D335F3A-9D43-41b4-9D22-F6F17C4BE596}
XNA (XBox) {2DF5C3F4-5A5F-47a9-8E94-23B4456F55E2}
XNA (Zune) {D399B71A-8929-442a-A9AC-8BEC78BB2433}
SharePoint (VB.NET) {EC05E597-79D4-47f3-ADA0-324C4F7C7484}
SharePoint (C#) {593B0543-81F6-4436-BA1E-4747859CAAE2}
Silverlight {A1591282-1198-4647-A2B1-27E5FF5F6F3B}

Categories: VS 2005 | VS 2008

After installed and tested Vault/Fortress. I think Vault has many features very useful for our team:

  1. Vault can import the data from database of VSS, and you can compare the update histories between VSS and Vault  
  2. Cheap branching, very fast and height efficiency. Atomic check in support. All the files you check in same time regard as one unit, if one of them commit failed then all the files will be rollback.
  3. You can shelve you unfinished change, and you can un-shelve it any where.
  4. Client User GUI is supper friendly and straightforward. Much easier to use than VSS or any other revision tools.

It has Integrated GUI with VS and Eclipse. In Visual Studio, only need 3 steps you can switch the opened solution from control of VSS to Vault.


  1. Supper easy to merge, it has similar functions like Beyond Compare, but integrated in its GUI. The tools of compare  branches and folders is also very useful when we do branch merge.
  2. It use SqlServer database as its backend, so it is easy to management.

It has Programming API, we can do some integration work ourselves if need.

7         Fortress is a Project Management and Bug tracking system. It integrated with VauLt, when you check in, you can easily broswer the project/bug items you are working on, and associate the “Bug_Id” with the checkin. All description in project/Bug item can be load to check in comments with out “Copy\paste”. You can force all check in must need a bug_Id.

8         Higher Security, you can set different privilege for projects/branches with different developers and groups.


There are more features I didn’t list.

More information available at

Categories: Agile | ProjectManagement | VS 2005 | VS 2008

1. you need create a web deploy project, if you didn't have that,please install the web deployment plug-in.

For Visual Studio 2005, the plug-in can be downloaded here.

For Visual Studio 2008, the plug-in can be downloaded here.

2. Configure your deploy project properties like below.

3. after build, you will get a single assembly CommonVoiceUC.dll,
in you new web site, add it to your reference.

4. in your aspx page, use it like regular Customer Controls.
<%@ Register Assembly="CommonVoiceUC" Namespace="CVUC" TagPrefix="cvuc" %>
<cvuc:CvDistributionGroupUpdateUC runat="server" ID="test" />

so this way you can very easy create a lot of customer controls with lots of Html tag or css in it. and it very easy for other application to use it.
the bad thing is if the control have other components, for example "Telerik.Web.UI.dll", and other site want to reuse this control was using a different version of Telerik control.
the conflicts will happen.

Categories: | VS 2005 | VS 2008

Got this from Scott Guthrie's blog:

Now one annoying gotcha:


There is one gotcha to be aware of, though, that can sometimes cause intellisense for the web.config file to stop working in the IDE.  This happens when a default namespace is added to the root <configuration> element.  For example, like so:


            <configuration xmlns="">


This doesn’t cause any runtime problems – but it does stop intellisense completion happening for the built-in .NET XML elements in the web.config file. 


The bad news is that the built-in web admin tool (launched via the WebSite->ASP.NET Configuration menu item in VS 2005 and Visual Web Developer) always adds this xmlns namespace when it launches – so if you use this tool to manage users/roles you’ll end up having it added to your web.config file for you.


How to fix this gotcha:


To get intellisense back when you are editing the web.config file in the IDE, just delete the xmlns reference and have the root configuration element look like so:




Everything will then work fine again.

Ref Link:

Categories: VS 2005