{"id":2013,"date":"2010-06-01T11:32:00","date_gmt":"2010-06-01T11:32:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudio\/2010\/06\/01\/walkthrough-publishing-an-extensibility-web-control-project-template-part-2-of-2\/"},"modified":"2022-05-18T05:12:22","modified_gmt":"2022-05-18T12:12:22","slug":"walkthrough-publishing-an-extensibility-web-control-project-template-part-2-of-2","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/walkthrough-publishing-an-extensibility-web-control-project-template-part-2-of-2\/","title":{"rendered":"Walkthrough&#8211; Publishing an Extensibility Web Control Project Template (Part 2 of 2)"},"content":{"rendered":"<h4>Introduction<\/h4>\n<p>In <b><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/walkthrough-publishing-a-custom-web-control-part-1-of-2\">Walkthrough&#8211; Publishing a Custom Web Control (Part 1 of 2)<\/a><\/b> you learned to create and publish a custom web control. You created the extensibility project manually, a procedure with many steps. Now that you have an extensibility project template, you can publish it to the Visual Studio gallery. Anyone who wants to create and publish a custom web control can download and install your template and create the project in one step. <\/p>\n<p>In the second part of this walkthrough, you will learn to<\/p>\n<ul>\n<li>Create a VSIX project template extension. <\/li>\n<li>Publish the project template to the Visual Studio Gallery. <\/li>\n<li>Install the project template from the Visual Studio Gallery. <\/li>\n<li>Test the installed project template. <\/li>\n<li>Remove the project template from the Visual Studio Gallery. <\/li>\n<li>Add a debug action to the project template. <\/li>\n<\/ul>\n<h4>Prerequisites<\/h4>\n<p>To follow this walkthrough, you must have a working knowledge of web controls, creating new projects, setting project properties, and using the Visual Studio experimental instance. You must have both Visual Studio 2010 and the Visual Studio 2010 SDK installed on your computer. In addition, you must have completed the first part of this walkthrough.<\/p>\n<h4>Creating and Publishing an Extensibility Web Control Template<\/h4>\n<p>To create an extensibility web control project template, start with the custom web control project that you created in the first part of this walkthrough. Because this project includes the ColorTextControl web control, you can use this template to create custom web controls that render as colored text. <\/p>\n<p>To publish a project template to the Visual Studio gallery, you must create the project template as a VSIX extension and provide it with an icon and a screenshot. The easiest way to do this is to use the <b>Export Template as VSIX<\/b> wizard.<\/p>\n<p>1. Open the MyWebControls project in Visual Studio.<\/p>\n<p>2. Use the Extension Manager to download the <a href=\"http:\/\/visualstudiogallery.msdn.microsoft.com\/en-us\/57320b20-34a2-42e4-b97e-e615c71aca24\"><b>Export Template as VSIX wizard<\/b><\/a> from the Visual Studio gallery. This adds the <b>Export Template as VSIX &hellip;<\/b> item to the File menu when a project is open. <\/p>\n<p>3. Select the <b>Export Template as VSIX<\/b> menu item.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/2746.clip_image002_thumb_75D1B1F3.jpg\"><img decoding=\"async\" height=\"244\" width=\"192\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/2746.clip_image002_thumb_75D1B1F3.jpg\" alt=\"clip_image002\" border=\"0\" title=\"clip_image002\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<p>4. In the <b>Choose Template Type<\/b> page, make sure that <b>Project Template<\/b> is selected, and that the MyWebControls.csproj check box is checked. Click Next.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/0285.clip_image004_thumb_649DD450.jpg\"><img decoding=\"async\" height=\"194\" width=\"244\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/0285.clip_image004_thumb_649DD450.jpg\" alt=\"clip_image004\" border=\"0\" title=\"clip_image004\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<p>5. In the <b>Select Template Options<\/b> page, set the <b>Template Name<\/b> to <i>Extensibility Color Text Web Toolbox Control<\/i> and the <b>Template Description<\/b> to <i>Color text web control project that produces a VSIX extension<\/i>.<\/p>\n<p>6. In the<b> Icon Image<\/b> text box, <b>Browse<\/b> to and select the Color.bmp file. You must set the file filter to All Files (*.*) to see this file.<\/p>\n<p>7. In the <b>Preview Image<\/b> text box, <b>Browse<\/b> to and select the ScreenShot.bmp file. You must set the file filter to All Files (*.*) to see this file. Click Next.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/5504.clip_image006_thumb_36D00B8B.jpg\"><img decoding=\"async\" height=\"182\" width=\"244\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/5504.clip_image006_thumb_36D00B8B.jpg\" alt=\"clip_image006\" border=\"0\" title=\"clip_image006\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<p>8. In the <b>Select VSIX Options<\/b> page, change the <b>Product Name<\/b> to <i>Extensibility Color Text Web Control Template<\/i>.<\/p>\n<p>9. Change the <b>Company Name<\/b>, and so forth, as desired.<\/p>\n<p>10. Uncheck the <b>Automatically import the template into Visual Studio<\/b> check box, then click Finish.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/7651.clip_image008_thumb_0EBD5C6C.jpg\"><img decoding=\"async\" height=\"38\" width=\"244\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/7651.clip_image008_thumb_0EBD5C6C.jpg\" alt=\"clip_image008\" border=\"0\" title=\"clip_image008\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<p>In a moment, the Windows Explorer opens to display the Extensibility Color Text Web Control Template.vsix file in the &lt;Users&gt;My DocumentsVisual Studio 2010My Exported Templates folder.<\/p>\n<h4>Publishing the web control project template VSIX file<\/h4>\n<p>You are now ready to publish your project template to the Visual Studio gallery.<\/p>\n<p>1. Launch your web browser and navigate to <a href=\"http:\/\/visualstudiogallery.msdn.microsoft.com\">http:\/\/visualstudiogallery.msdn.microsoft.com<\/a>.<\/p>\n<p>2. Click the <b>sign in<\/b> link in the upper right-hand corner.<\/p>\n<p>3. Sign in with your Windows Live ID. If you don&rsquo;t have one, you can create one here.<\/p>\n<p>4. Click the <b>Upload<\/b> button in the upper right-hand corner.<\/p>\n<p>5. In <b>Step 1:<\/b> <b>Extension Type<\/b>, select <b>Project or Item Template<\/b>, then click Next.<\/p>\n<p>6. In <b>Step 2: Upload<\/b>, click the <b>Browse<\/b> button and select the Extensibility Color Text Web Control Template.vsix file located in the My Exported Templates folder. Click Next.<\/p>\n<p>7. In <b>Step 3:<\/b> <b>Basic Information<\/b>, the information you entered into the <b>Export Template as VSIX<\/b> wizard appears. <\/p>\n<p>8. Set the <b>Category<\/b> to <i>ASP.NET<\/i> and the <b>Tags<\/b> to <i>toolbox, web control, templates<\/i>.<\/p>\n<p>9. Read and agree to the <b>Contribution Agreement<\/b>, then type the text image into the text box. <\/p>\n<p>10. Click <b>Create Contribution<\/b>, then click <b>Publish<\/b>.<\/p>\n<p>11. Search the Visual Studio Gallery for <i>extensibility color text web control template<\/i>. The new template listing appears.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/5001.clip_image010_thumb_1BB73C7D.jpg\"><img decoding=\"async\" height=\"56\" width=\"244\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/5001.clip_image010_thumb_1BB73C7D.jpg\" alt=\"clip_image010\" border=\"0\" title=\"clip_image010\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<h4>Installing the web control project template<\/h4>\n<p>Now that your web control project template is published, install it in Visual Studio and test it there.<\/p>\n<p>1. Return to Visual Studio.<\/p>\n<p>2. From the <b>Tools<\/b> menu, select <b>Extension Manager<\/b>.<\/p>\n<p>3. Click <b>Online Gallery<\/b>, then search for <i>extensibility color text web control template<\/i>. The <b>Extensibility Color Text Web Control Template<\/b> listing appears.<\/p>\n<p>4. Click the <b>Download<\/b> button. After the extension downloads, click the <b>Install<\/b> button. Your project template is now installed in Visual Studio.<\/p>\n<h4>Testing the web control project template<\/h4>\n<p>You no longer have to create a custom web control the manual way, as you did in the first part of this walkthrough. Instead, you can use the <b>Extensibility Color Text Web Control<\/b> project template. In this section, you use the template to create a BlueColorTextControl web control.<\/p>\n<p>1. Select the <b>File\/New Project<\/b> menu item, then click the <b>Online Templates<\/b> tag in the left pane.<\/p>\n<p>2. Select the ASP.NET node, then click <b>Extensibility Color Text Web Control Template <\/b>in the middle pane.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/1616.clip_image012_thumb_259C2DE8.jpg\"><img decoding=\"async\" height=\"71\" width=\"244\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/1616.clip_image012_thumb_259C2DE8.jpg\" alt=\"clip_image012\" border=\"0\" title=\"clip_image012\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<p>3. Set the <b>Name<\/b> to MoreWebControls, then click OK.<\/p>\n<p>4. Rename the ColorTextControl.cs file to be BlueColorTextControl.cs.<\/p>\n<p>5. Open the BlueColorTextControl.cs file.<\/p>\n<p>6. In the <b>ToolboxData<\/b> attribute, replace both occurrences of ColorTextControl with BlueColorTextControl.<\/p>\n<p>These values specify the opening and closing tags generated for the control when it is dragged from the Toolbox into a web page at design time. They must match the name of the control class, which is also the name of the control that appears in the toolbox. <\/p>\n<p>The start of the control class source code now looks like this:<\/p>\n<pre class=\"code\"><span style=\"color: blue\">namespace <\/span>MoreWebControls\r\n{\r\n    [<span style=\"color: #2b91af\">DefaultProperty<\/span>(<span style=\"color: #a31515\">\"Text\"<\/span>)]\r\n    [<span style=\"color: #2b91af\">ToolboxData<\/span>(<span style=\"color: #a31515\">\"&lt;{0}:BlueColorTextControl runat=server&gt;&lt;\/{0}:BlueColorTextControl&gt;\"<\/span>)]\r\n    [ProvideToolboxControl(<span style=\"color: #a31515\">\"MoreWebControls\"<\/span>, <span style=\"color: blue\">false<\/span>)]\r\n    <span style=\"color: blue\">public class <\/span><span style=\"color: #2b91af\">BlueColorTextControl <\/span>: <span style=\"color: #2b91af\">WebControl\r\n    <\/span>{<\/pre>\n<p><a href=\"http:\/\/11011.net\/software\/vspaste\"><\/a><\/p>\n<p>7. In the<b> get <\/b>method, Change the color &ldquo;green&rdquo; to &ldquo;blue&rdquo;.<\/p>\n<pre class=\"code\"><span style=\"color: blue\">get\r\n<\/span>{\r\n    <span style=\"color: #2b91af\">String <\/span>s = (<span style=\"color: #2b91af\">String<\/span>)ViewState[<span style=\"color: #a31515\">\"Text\"<\/span>];\r\n    <span style=\"color: blue\">return <\/span><span style=\"color: #a31515\">\"&lt;span style='color:blue'&gt;' <\/span>+ s + <span style=\"color: #a31515\">\"&lt;\/span&gt;\"<\/span>;\r\n}<\/pre>\n<pre class=\"code\"><span style=\"font-family: Arial\">This surrounds the text with a span tag that colors it blue.<\/span><\/pre>\n<p>8. Build the MoreWebControls project.<\/p>\n<h4>Testing the new web control<\/h4>\n<p>Do not press F5 to launch an experimental instance of Visual Studio. Instead, launch it by following the steps below. You will learn more about adding a debug action to a project template in a later section.<\/p>\n<p>1. Launch an experimental instance of Visual Studio explicitly by selecting the menu <b>item Start\/All Programs\/Microsoft Visual Studio 2010 SDK\/Tools\/Start Experimental Instance of Microsoft Visual Studio 2010<\/b>. For convenience, you can create a shortcut to this executable. <\/p>\n<p>2. Create a new web application project.<\/p>\n<p>3. Open default.aspx in <b>Source<\/b> mode.<\/p>\n<p>4. Open the toolbox. You should see BlueColorTextControl in the category MoreWebControls.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/4540.clip_image014_thumb_4472A1C6.jpg\"><img decoding=\"async\" height=\"64\" width=\"174\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/4540.clip_image014_thumb_4472A1C6.jpg\" alt=\"clip_image014\" border=\"0\" title=\"clip_image014\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<p>5. Drag a BlueColorTextControl to the body of the web page.<\/p>\n<p>6. Add a <b>Text<\/b> attribute with the value <i>Think Blue!<\/i> to the BlueColorTextControl tag. The resulting tag should look like this:<\/p>\n<pre class=\"code\"><span style=\"color: blue\">&lt;<\/span><span style=\"color: maroon\">cc1<\/span><span style=\"color: blue\">:<\/span><span style=\"color: maroon\">BlueColorTextControl <\/span><span style=\"color: red\">ID<\/span><span style=\"color: blue\">=\"BlueColorTextControl1\" <\/span><span style=\"color: red\">Text<\/span><span style=\"color: blue\">=\"Think Blue!\" <\/span><span style=\"color: red\">runat<\/span><span style=\"color: blue\">=\"server\" \/&gt;\r\n<\/span><\/pre>\n<p>7. Press F5 to launch the ASP.NET Development Server. <\/p>\n<p>The BlueColorTextControl should render something like this:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/5428.clip_image016_thumb_38047E9D.jpg\"><img decoding=\"async\" height=\"69\" width=\"244\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/5428.clip_image016_thumb_38047E9D.jpg\" alt=\"clip_image016\" border=\"0\" title=\"clip_image016\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<p>8. Close the ASP.NET Development Server.<\/p>\n<p>9. Close the experimental instance of Visual Studio.<\/p>\n<h4>Removing the project template<\/h4>\n<p>To add a debug action to your project template, you must delete the current template and recreate it. To delete the project template and the project it generated, follow these steps.<\/p>\n<p>1. Return to your web browser. <\/p>\n<p>2. Click the <b>My Contributions<\/b> link in the upper left-hand corner. The Extensibility Color Text Web Control Template listing appears.<\/p>\n<p>3. Click <b>Delete<\/b> to permanently remove your project template from the Visual Studio Gallery.<\/p>\n<p>4. Close the browser and return to Visual Studio.<\/p>\n<p>5. From the <b>Tools<\/b> menu, select <b>Extension Manager<\/b>.<\/p>\n<p>6. Select Extensibility Color Text Web Control Template, then click <b>Uninstall<\/b>.<\/p>\n<p>7. Close the Extension Manager. <\/p>\n<p>8. Close the MoreWebControls solution.<\/p>\n<p>9. Close Visual Studio.<\/p>\n<p>10. Delete the MoreWebControls project folder.<\/p>\n<p>11. Start Visual Studio to complete the uninstall process.<\/p>\n<h4>Adding a debug action to the project template<\/h4>\n<p>If you press F5 while the MoreWebControls solution is open, you will see the error message &ldquo;A project with an Output Type of Class Library cannot be started directly&rdquo;. Your project template does not set a debug action because the location of the experimental instance of Visual Studio is unknown until the project template is installed on the target machine.<\/p>\n<p>Microsoft extensibility project templates include an invisible wizard that runs during project template installation. This wizard determines the location of the experimental instance of Visual Studio and sets the debug action accordingly. You can create your own wizard to do the same. You only need to create this wizard once. You can use the same wizard with every extensibility project template you create.<\/p>\n<p>The extensibility project template wizard must have a public implementation of Microsoft.VisualStudio.TemplateWizard.IWizard, and must be signed with a strong assembly name.<\/p>\n<h5>Creating the wizard<\/h5>\n<p>1. Create a new Visual C#\/Windows\/Class Library project named MyWizard.<\/p>\n<p>2. Rename the file class1.cs to be MyWizard.cs.<\/p>\n<p>3. Replace the MyWizard.cs file content with the following code.<\/p>\n<pre class=\"code\"><span style=\"color: blue\">using <\/span>System;\r\n<span style=\"color: blue\">using <\/span>System.Collections.Generic;\r\n<span style=\"color: blue\">using <\/span>System.Linq;\r\n<span style=\"color: blue\">using <\/span>System.Text;\r\n<span style=\"color: blue\">using <\/span>Microsoft.VisualStudio.TemplateWizard;\r\n<span style=\"color: blue\">using <\/span>System.Globalization;\r\n<span style=\"color: blue\">using <\/span>EnvDTE;\r\n<span style=\"color: blue\">namespace <\/span>MyWizard\r\n{\r\n    <span style=\"color: blue\">public class <\/span><span style=\"color: #2b91af\">MyWizard <\/span>: <span style=\"color: #2b91af\">IWizard\r\n    <\/span>{\r\n        <span style=\"color: blue\">public void <\/span>BeforeOpeningFile(<span style=\"color: #2b91af\">ProjectItem <\/span>projectItem)\r\n        {\r\n        }\r\n        <span style=\"color: blue\">public void <\/span>ProjectFinishedGenerating(<span style=\"color: #2b91af\">Project <\/span>project)\r\n        {\r\n            <span style=\"color: blue\">foreach <\/span>(<span style=\"color: #2b91af\">Configuration <\/span>config <span style=\"color: blue\">in <\/span>project.ConfigurationManager)\r\n            {\r\n                <span style=\"color: green\">\/\/Set up the debug options to run \"devenv \/rootsuffix Exp\";\r\n                <\/span>config.Properties.Item(<span style=\"color: #a31515\">\"StartAction\"<\/span>).Value = 1;\r\n                <span style=\"color: green\">\/\/Get the full path to devenv.exe through DTE.FullName\r\n                <\/span>config.Properties.Item(<span style=\"color: #a31515\">\"StartProgram\"<\/span>).Value =\r\n                    project.DTE.FullName;\r\n                config.Properties.Item(<span style=\"color: #a31515\">\"StartArguments\"<\/span>).Value =\r\n                    <span style=\"color: #a31515\">\"\/rootsuffix Exp\"<\/span>;\r\n            }\r\n        }\r\n        <span style=\"color: blue\">public void <\/span>ProjectItemFinishedGenerating(<span style=\"color: #2b91af\">ProjectItem <\/span>projectItem)\r\n        {\r\n        }\r\n        <span style=\"color: blue\">public void <\/span>RunFinished()\r\n        {\r\n        }\r\n        <span style=\"color: blue\">public void <\/span>RunStarted(<span style=\"color: blue\">object <\/span>automationObject,\r\n            <span style=\"color: #2b91af\">Dictionary<\/span>&lt;<span style=\"color: blue\">string<\/span>, <span style=\"color: blue\">string<\/span>&gt; replacementsDictionary,\r\n            <span style=\"color: #2b91af\">WizardRunKind <\/span>runKind, <span style=\"color: blue\">object<\/span>[] customParams)\r\n        {\r\n        }\r\n        <span style=\"color: blue\">public bool <\/span>ShouldAddProjectItem(<span style=\"color: blue\">string <\/span>filePath)\r\n        {\r\n            <span style=\"color: blue\">return true<\/span>;\r\n        }\r\n    }\r\n}<\/pre>\n<p><a href=\"http:\/\/11011.net\/software\/vspaste\"><\/a><\/p>\n<p>4. Add the following references to the project. If there is more than one choice, choose the reference that has a path to Visual Studio 2010:<\/p>\n<ul>\n<li>EnvDTE <\/li>\n<li>Microsoft.VisualStudio.TemplateWizardInterface <\/li>\n<\/ul>\n<p>5. In the <b>Signing<\/b> tab of the project properties dialog box, check the <b>Sign the assembly<\/b> check box.<\/p>\n<p>6. In the <b>Choose a strong name key file<\/b> dropdown list, select <b>&lt;New&hellip;&gt;<\/b>. The <b>Create Strong Name Key<\/b> dialog box appears.<\/p>\n<p>7. Set the <b>Key file name<\/b> to <i>key.snk<\/i> and uncheck the <b>Protect my key file with a password<\/b> check box.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/8244.clip_image018_thumb_5A0CDA63.jpg\"><img decoding=\"async\" height=\"135\" width=\"244\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/8244.clip_image018_thumb_5A0CDA63.jpg\" alt=\"clip_image018\" border=\"0\" title=\"clip_image018\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<p>8. Click OK. The key.snk file is added to the project.<\/p>\n<p>9. Build the MyWizard project as a <b>Release<\/b> build. Your wizard is now ready to use.<\/p>\n<p>10. Close the MyWizard solution.<\/p>\n<h5>Incorporating the wizard into the project template.<\/h5>\n<p>To incorporate the wizard into the project template VSIX extension, you must backtrack and set the path to your wizard in the <b>Export Template as VSIX<\/b> wizard <b>Wizard<\/b> text box.<\/p>\n<p>Follow the steps beginning with the section <b>Creating and Publishing an Extensibility Web Control Template<\/b>, with these exceptions:<\/p>\n<ul>\n<li>You do not have to download the <b>Export Template as VSIX<\/b> wizard again. <\/li>\n<li>In the <b>Wizard<\/b> text box of the <b>Select VSIX Options<\/b> page of the <b>Export Template as VSIX<\/b> wizard, <b>Browse<\/b> to and select the bin\/Release\/MyWizard.dll file you created in the section above. <\/li>\n<\/ul>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/2476.clip_image020_thumb_2D83AA7D.jpg\"><img decoding=\"async\" height=\"46\" width=\"244\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/2476.clip_image020_thumb_2D83AA7D.jpg\" alt=\"clip_image020\" border=\"0\" title=\"clip_image020\" style=\"border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px\" \/><\/a><\/p>\n<ul>\n<li>When asked to overwrite the existing VSIX extension output file, click Yes. <\/li>\n<\/ul>\n<p>When you reach the section <b>Testing the new web control<\/b>, you can now launch the experimental instance of Visual Studio by pressing F5.<\/p>\n<h4>Summary<\/h4>\n<p>Congratulations! You have come full circle, from creating a web control project from scratch, to creating an extensibility web control project template.<\/p>\n<p>Note that in this walkthrough, you use the <b>Export Template as VSIX<\/b> wizard to simplify the task of creating and publishing a project template. If you need more control of the project template, for example, to choose the icon that appears in the New Project dialog box, you must explicitly create the project template and wrap it in a VSIX extension. For more information, see Aaron Marten&rsquo;s <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/creating-and-sharing-project-item-templates\/\">Creating and Sharing Project and Item Templates<\/a>.<\/p>\n<p><span><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/3377.REDMOND_martintr_LThumb_thumb_33CA810B.jpg\"><img decoding=\"async\" height=\"100\" width=\"76\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2010\/06\/3377.REDMOND_martintr_LThumb_thumb_33CA810B.jpg\" alt=\"Martin Tracy\" border=\"0\" title=\"Martin Tracy photo\" style=\"padding-bottom: 4px;border-right-width: 0px;padding-left: 4px;padding-right: 4px;float: left;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px;padding-top: 4px\" \/><\/a><strong>Short Bio:<\/strong> Martin Tracy is a senior programmer writer for the Visual Studio Project and Build team. As part of VS 2010, he has documented numerous features of the MSBuild system and Visual Studio platform. His long term focus is on developing infrastructure to build richly featured web applications. Martin has a long career in real-time software development, from artificial hearts and smart prosthetics to adaptive aeronautic controls. Martin holds a Masters degree in Dance Ethnology from the University of California, Los Angeles (UCLA), and a Bachelors degree in Asian Culture from Brown University, Rhode Island. He lives in Snohomish, WA with his extended family and loves to play accordion and watch anime in his spare time.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction In Walkthrough&#8211; Publishing a Custom Web Control (Part 1 of 2) you learned to create and publish a custom web control. You created the extensibility project manually, a procedure with many steps. Now that you have an extensibility project template, you can publish it to the Visual Studio gallery. Anyone who wants to create [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":255385,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1029],"tags":[85,5,294,185,13],"class_list":["post-2013","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web","tag-asp-net","tag-csharp","tag-extensions","tag-node-js","tag-visual-studio-2010"],"acf":[],"blog_post_summary":"<p>Introduction In Walkthrough&#8211; Publishing a Custom Web Control (Part 1 of 2) you learned to create and publish a custom web control. You created the extensibility project manually, a procedure with many steps. Now that you have an extensibility project template, you can publish it to the Visual Studio gallery. Anyone who wants to create [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/2013","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=2013"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/2013\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/255385"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=2013"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=2013"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=2013"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}