diff --git a/dist/npanday-repository-builder/pom.xml b/dist/npanday-repository-builder/pom.xml
index d5905f9..0859e62 100644
--- a/dist/npanday-repository-builder/pom.xml
+++ b/dist/npanday-repository-builder/pom.xml
@@ -113,11 +113,6 @@
     </dependency>
     <dependency>
       <groupId>org.apache.npanday.plugins</groupId>
-      <artifactId>maven-vsinstaller-plugin</artifactId>
-      <version>1.5.0-incubating-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.npanday.plugins</groupId>
       <artifactId>maven-wsdl-plugin</artifactId>
       <version>1.5.0-incubating-SNAPSHOT</version>
     </dependency>
diff --git a/plugins/maven-vsinstaller-plugin/pom.xml b/plugins/maven-vsinstaller-plugin/pom.xml
deleted file mode 100644
index e584713..0000000
--- a/plugins/maven-vsinstaller-plugin/pom.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <parent>
-    <groupId>org.apache.npanday.plugins</groupId>
-    <version>1.5.0-incubating-SNAPSHOT</version>
-    <artifactId>maven-dotnet-plugins</artifactId>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <artifactId>maven-vsinstaller-plugin</artifactId>
-  <packaging>maven-plugin</packaging>
-  <name>NPanday :: Visual Studio Addin Installer Maven Plugin</name>
-  <description>Maven Plugin for .NET: Installs the Visual Studio Addin</description>
-  <build>
-    <resources>
-      <resource>
-        <directory>src/main/resources</directory>
-        <filtering>true</filtering>
-      </resource>
-    </resources>
-    <plugins>
-      <plugin>
-        <groupId>org.codehaus.gmaven</groupId>
-        <artifactId>gmaven-plugin</artifactId>
-        <version>1.2</version>
-        <executions>
-          <execution>
-            <goals>
-              <goal>generateStubs</goal>
-              <goal>compile</goal>
-              <goal>generateTestStubs</goal>
-              <goal>testCompile</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>generate-plexus-config</id>
-            <phase>prepare-package</phase>
-            <goals>
-              <goal>execute</goal>
-            </goals>
-            <configuration>
-              <source>file:///${pom.basedir}/src/main/script/plexus_component_xml.groovy</source>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-  <dependencies>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>4.8.1</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.groovy</groupId>
-      <artifactId>groovy-all</artifactId>
-      <version>1.7.0</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>commons-io</groupId>
-      <artifactId>commons-io</artifactId>
-      <version>1.4</version>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-utils</artifactId>
-      <version>${plexus.utils.version}</version>
-    </dependency>
-  </dependencies>
-</project>
diff --git a/plugins/maven-vsinstaller-plugin/src/main/java/npanday/plugin/vsinstaller/VsInstallerMojo.java b/plugins/maven-vsinstaller-plugin/src/main/java/npanday/plugin/vsinstaller/VsInstallerMojo.java
deleted file mode 100644
index 3959e23..0000000
--- a/plugins/maven-vsinstaller-plugin/src/main/java/npanday/plugin/vsinstaller/VsInstallerMojo.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package npanday.plugin.vsinstaller;
-
-import npanday.registry.RepositoryRegistry;
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.filefilter.FileFileFilter;
-import org.apache.commons.io.filefilter.FileFilterUtils;
-import org.apache.commons.io.filefilter.IOFileFilter;
-import org.apache.maven.artifact.handler.ArtifactHandler;
-import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.MojoFailureException;
-import org.codehaus.plexus.util.IOUtil;
-
-import javax.swing.filechooser.FileSystemView;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Installs Visual Studio 2005 addin.
- *
- * @author Shane Isbell
- * @goal install
- * @requiresProject false
- * @requiresDirectInvocation true
- */
-public class VsInstallerMojo
-    extends AbstractMojo
-{
-    /**
-     * @parameter expression ="${installationLocation}"
-     */ 
-    public File installationLocation;
-    /**
-     * @parameter expression = "${project}"
-     */
-    public org.apache.maven.project.MavenProject mavenProject;
-
-    /**
-     * @parameter
-     */
-    public List<File> vsAddinDirectories = new ArrayList<File>();
-
-    /**
-     * The the path to the local maven repository.
-     *
-     * @parameter expression="${settings.localRepository}"
-     */
-    private String localRepository;
-
-    /**
-     * Provides access to configuration information used by NPanday.
-     *
-     * @component
-     */
-    private RepositoryRegistry repositoryRegistry;
-
-    /** @component role="org.apache.maven.artifact.handler.ArtifactHandler" */
-    private List<ArtifactHandler> artifactHandlers;
-
-    /** @component */
-    private ArtifactHandlerManager artifactHandlerManager;
-
-    private FileSystemView filesystemView = FileSystemView.getFileSystemView();
-
-    public void execute()
-        throws MojoExecutionException, MojoFailureException
-    {
-        Map<String, ArtifactHandler> map = new HashMap<String, ArtifactHandler>();
-
-        for ( ArtifactHandler artifactHandler : artifactHandlers )
-        {
-            //If I add a handler that already exists, the runtime breaks.
-            if ( isDotNetHandler( artifactHandler ) )
-            {
-                map.put( artifactHandler.getPackaging(), artifactHandler );
-            }
-        }
-        artifactHandlerManager.addHandlers( map );
-
-        // in case Maven doesn't populate the base directory
-        if ( mavenProject.getBasedir() == null || "${project.basedir}".equals( mavenProject.getBasedir().getName() ) )
-        {
-            mavenProject.setBasedir( new File( System.getProperty( "user.dir" ) ) );
-            mavenProject.getBuild().setDirectory( new File( mavenProject.getBasedir(), "target" ).getAbsolutePath() );
-        }
-
-        getLog().warn( "NPANDAY-251: removed net dependency resolution for VS2005-profile here!" );
-
-        collectDefaultVSAddinDirectories();
-
-        getInstallationLocation();
-
-        for ( File vsAddinsDir : vsAddinDirectories )
-        {
-            writePlugin( vsAddinsDir );
-        }
-
-        copyDependenciesToBin();
-    }
-
-    /**
-     * Returns true if the artifact handler can handle the dotnet types, otherwise returns false
-     *
-     * @param artifactHandler the artifact handler to check
-     * @return true if the artifact handler can handle the dotnet types, otherwise returns false
-     */
-    private boolean isDotNetHandler( ArtifactHandler artifactHandler )
-    {
-        String extension = artifactHandler.getExtension();
-        return extension.equals( "dll" ) || extension.equals( "nar" ) || extension.equals( "exe" ) ||
-            extension.equals( "exe.config" );
-    }
-
-    private void collectDefaultVSAddinDirectories()
-    {
-        File homeDir = filesystemView.getDefaultDirectory();
-
-        String vs2010 = "Visual Studio 2010";
-        
-        String vs2008 = "Visual Studio 2008";
-        String vs2005 = "Visual Studio 2005";
-
-        List<File> defaultVSDirs = new ArrayList<File>();
-
-        defaultVSDirs.add( new File( homeDir, vs2010 ) );
-        
-        defaultVSDirs.add( new File( homeDir, vs2008 ) );
-        defaultVSDirs.add( new File( homeDir, vs2005 ) );
-
-        File enHomeDir = new File( System.getProperty( "user.home" ), "My Documents" );
-        if ( !homeDir.getPath().toLowerCase().equals( enHomeDir.getPath().toLowerCase() ) )
-        {
-            defaultVSDirs.add( new File( enHomeDir, vs2010 ) );
-
-            defaultVSDirs.add( new File( enHomeDir, vs2008 ) );
-            defaultVSDirs.add( new File( enHomeDir, vs2005 ) );
-        }
-
-        for ( File dir : defaultVSDirs )
-        {
-            if ( dir.exists() )
-            {
-                File addInPath = new File( dir, "AddIns" );
-
-                if ( !addInPath.exists() )
-                {
-                    addInPath.mkdir();
-                }
-
-                vsAddinDirectories.add( addInPath );
-            }
-        }
-    }
-
-    private void writePlugin( File addinPath )
-        throws MojoExecutionException
-    {
-        OutputStreamWriter writer = null;
-
-        if ( !addinPath.exists() )
-        {
-            addinPath.mkdirs();
-        }
-
-        try
-        {
-            String addin = IOUtil.toString( VsInstallerMojo.class.getResourceAsStream(
-                "/template/NPanday.VisualStudio.AddIn" ) );
-            File outputFile = new File( addinPath, "NPanday.VisualStudio.AddIn" );
-
-            writer = new OutputStreamWriter( new FileOutputStream( outputFile ), "Unicode" );
-
-            writer.write( addin.replaceAll( "\\$\\{installationLocation\\}", installationLocation.getAbsolutePath().replaceAll( "\\\\", "\\\\\\\\" ) ) );
-        }
-        catch ( IOException e )
-        {
-            throw new MojoExecutionException( "NPANDAY-121-001: Unable to write to Visual Studio AddIns directory: " + e.getMessage() );
-        }
-        finally
-        {
-            IOUtil.close( writer );
-        }
-
-    }
-
-    private void copyDependenciesToBin()
-         throws MojoExecutionException
-    {
-        try
-        {
-            IOFileFilter dllSuffixFilter = FileFilterUtils.suffixFileFilter( ".dll" );
-            IOFileFilter dllFiles = FileFilterUtils.andFileFilter( FileFileFilter.FILE, dllSuffixFilter );
-
-            FileUtils.copyDirectory( new File( mavenProject.getBuild().getDirectory() ), installationLocation, dllFiles,
-                                     true );
-        }
-
-        catch ( IOException e )
-        {
-            throw new MojoExecutionException( "NPANDAY-121-004: Error on copying dll-dependencies to bin", e );
-        }
-    }
-
-    private void getInstallationLocation()
-    {
-        if ( installationLocation == null )
-        {
-/* For now, reserve the "program files" default for the MSI - typically admin permissions will cause these to conflict
-            String programFilesPath = System.getenv( "PROGRAMFILES" );
-
-            if ( programFilesPath != null && programFilesPath.length() != 0 )
-            {
-                installationLocation = new File ( programFilesPath, "NPanday/bin" );
-
-                if ( !installationLocation.exists() )
-                {
-                    if ( !installationLocation.mkdirs() )
-                    {
-                        installationLocation = new File( System.getProperty( "user.home" ), "NPanday/bin" );
-                    }
-                }
-            }
-            else
-            {
-                installationLocation = new File( System.getProperty( "user.home" ), "NPanday/bin" );
-            }
-*/
-            installationLocation = new File( System.getProperty( "user.home" ), "NPanday/bin" );
-        }
-        else
-        {
-            installationLocation = new File ( installationLocation, "bin" );
-        }
-
-        if ( !installationLocation.exists() )
-        {
-            installationLocation.mkdirs();
-        }
-    }
-
-}
diff --git a/plugins/maven-vsinstaller-plugin/src/main/resources/META-INF/plexus/components.xml b/plugins/maven-vsinstaller-plugin/src/main/resources/META-INF/plexus/components.xml
deleted file mode 100644
index b4e1345..0000000
--- a/plugins/maven-vsinstaller-plugin/src/main/resources/META-INF/plexus/components.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~   http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-<component-set>
-  <components>
-    <!-- all generated automatically  -->
-  </components>
-</component-set>
diff --git a/plugins/maven-vsinstaller-plugin/src/main/resources/template/NPanday.VisualStudio.AddIn b/plugins/maven-vsinstaller-plugin/src/main/resources/template/NPanday.VisualStudio.AddIn
deleted file mode 100644
index d823e8d..0000000
--- a/plugins/maven-vsinstaller-plugin/src/main/resources/template/NPanday.VisualStudio.AddIn
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-16"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<Extensibility xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/AutomationExtensibility">
-  <HostApplication>
-    <Name>Microsoft Visual Studio</Name>
-    <Version>8.0</Version>
-  </HostApplication>
-  <HostApplication>
-    <Name>Microsoft Visual Studio</Name>
-    <Version>9.0</Version>
-  </HostApplication>
-  <HostApplication>
-    <Name>Microsoft Visual Studio</Name>
-    <Version>10.0</Version>
-  </HostApplication>  
-  <Addin>
-    <Assembly>${installationLocation}\NPanday.VisualStudio.Addin.dll</Assembly>
-    <FullClassName>NPanday.VisualStudio.Addin.Connect</FullClassName>
-    <AboutBoxDetails>For more information about NPanday, see the NPanday website at\r\nhttp://npanday.codeplex.com\r\nFor support inquiries, Join us at IRC: #NPanday on irc.freenode.net.\r\nCopyright (c) 2010 NPanday Committers</AboutBoxDetails>
-    <AboutIconData>0000010006002020100000000000E8020000660000001010100000000000280100004E0300002020000001000800A8080000760400001010000001000800680500001E0D00002020000001002000A8100000861200001010000001002000680400002E2300002800000020000000400000000100040000000000000000000000000000000000000000000000000000000000000000000080000000808000800000008000800080800000C0C0C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF001111111111111111111111111111111111111111111111111111111000001111111111111111111111111110ABA01111111111111111111111111110BAB01111111111111111111111111110ABA01111111111110000000000F00000BAB00000111111118888888888F0ABABABABABA0111111118F77777777F0BABABABABAB0111111118F77777777F0ABABABABABA0111111118F77777777F00000BAB00000110001118F77777777FFFFF0ABA01111108880118F777777777777F0BAB01111887788008F777777777777F0ABA011118FF770778F777777777777F0000011118FFF78088F777777777777FFFFFF111118FF70118F7777777777777777801111118881118F7777777777777777801111111111118F7777777777777777801111111111118F7777777777777777801111111111118F7777777777777777801111111111118FFFFFFFFFFFFFFFFF801111111111118888888888888888888011111111111111111870111118701111111111111111111118F0111118F011111111111111111111108011111080111111111111111111110808011108080111111111111111111877788018777880111111111111111118FF778018FF7780111111111111111118FFF78018FFF7801111111111111111118FF701118FF7011111111111111111111777111117771111111111111111111111111111111111111111FFFFFFFFFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFF000000FF000000FF000000FF000000FF000000C700000F8300000F0000000F0000000F0000000F8300000FC700000FFF00000FFF00000FFF00000FFF00000FFF00000FFFF8F8FFFFF8F8FFFFF8F8FFFFF0707FFFE0203FFFE0203FFFE0203FFFF0707FFFF8F8FFFFFFFFFF2800000010000000200000000100040000000000000000000000000000000000000000000000000000000000000000000080000000808000800000008000800080800000C0C0C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF0011111111111111111111111111100011111111111110A011111111111000B00011110000F0ABABA011118F88F000B00011118F77FFF0A01170718F7777F000110F008F7777FFFF1170718F777777801111118FFFFFFF801111118888888880111111111101111111111111170711111111111110F01111111111111707111111FFFF1111FFE37777FFE3ABABFF80ABA0F0001111F0007777F0030000100300000003011110037777F003FFF0F0031111FF7F8011FE3F7777FE3F77F0FE3F1111280000002000000040000000010008000000000000000000000000000000000000000000000000000000000000008000008000000080800080000000800080008080000080808000C0DCC000F0CAA600AA3F2A00FF3F2A00005F2A00555F2A00AA5F2A00FF5F2A00007F2A00557F2A00AA7F2A00FF7F2A00009F2A00559F2A00AA9F2A00FF9F2A0000BF2A0055BF2A00AABF2A00FFBF2A0000DF2A0055DF2A00AADF2A00FFDF2A0000FF2A0055FF2A00AAFF2A00FFFF2A000000550055005500AA005500FF005500001F5500551F5500AA1F5500FF1F5500003F5500553F5500AA3F5500FF3F5500005F5500555F5500AA5F5500FF5F5500007F5500557F5500AA7F5500FF7F5500009F5500559F5500AA9F5500FF9F550000BF550055BF5500AABF5500FFBF550000DF550055DF5500AADF5500FFDF550000FF550055FF5500AAFF5500FFFF550000007F0055007F00AA007F00FF007F00001F7F00551F7F00AA1F7F00FF1F7F00003F7F00553F7F00AA3F7F00FF3F7F00005F7F00555F7F00AA5F7F00FF5F7F00007F7F00557F7F00AA7F7F00FF7F7F00009F7F00559F7F00AA9F7F00FF9F7F0000BF7F0055BF7F00AABF7F00FFBF7F0000DF7F0055DF7F00AADF7F00FFDF7F0000FF7F0055FF7F00AAFF7F00FFFF7F000000AA005500AA00AA00AA00FF00AA00001FAA00551FAA00AA1FAA00FF1FAA00003FAA00553FAA00AA3FAA00FF3FAA00005FAA00555FAA00AA5FAA00FF5FAA00007FAA00557FAA00AA7FAA00FF7FAA00009FAA00559FAA00AA9FAA00FF9FAA0000BFAA0055BFAA00AABFAA00FFBFAA0000DFAA0055DFAA00AADFAA00FFDFAA0000FFAA0055FFAA00AAFFAA00FFFFAA000000D4005500D400AA00D400FF00D400001FD400551FD400AA1FD400FF1FD400003FD400553FD400AA3FD400FF3FD400005FD400555FD400AA5FD400FF5FD400007FD400557FD400AA7FD400FF7FD400009FD400559FD400AA9FD400FF9FD40000BFD40055BFD400AABFD400FFBFD40000DFD40055DFD400AADFD400FFDFD40000FFD40055FFD400AAFFD400FFFFD4005500FF00AA00FF00001FFF00551FFF00AA1FFF00FF1FFF00003FFF00553FFF00AA3FFF00FF3FFF00005FFF00555FFF00AA5FFF00FF5FFF00007FFF00557FFF00AA7FFF00FF7FFF00009FFF00559FFF00AA9FFF00FF9FFF0000BFFF0055BFFF00AABFFF00FFBFFF0000DFFF0055DFFF00AADFFF00FFDFFF0055FFFF00AAFFFF00FFCCCC00FFCCFF00FFFF3300FFFF6600FFFF9900FFFFCC00007F0000557F0000AA7F0000FF7F0000009F0000559F0000AA9F0000FF9F000000BF000055BF0000AABF0000FFBF000000DF000055DF0000AADF0000FFDF000055FF0000AAFF000000002A0055002A00AA002A00FF002A00001F2A00551F2A00AA1F2A00FF1F2A00003F2A00553F2A00F0FBFF00A4A0A000808080000000FF0000FF000000FFFF00FF00000000000000FFFF0000FFFFFF00FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD0C0CF50CF5FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD0D3938350CFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD303939380DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD11395D390CFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD35353535356139393110310D30FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD39666162616161613939393811FDFDFDFDFDFDFDFDFDFD3231073231323132083D858A61666261616161393935FDFDFDFDFDFDFDFDFD5E080909820982838608398A8A8A856165626161613D35FDFDFDFDFDFDFDFD82B3AF08080808080808AB39393939398A86613935353535FDFDFDFDFDFDFDFD86D1F6AFAFAFAFAF08AF0808D408D4398A6586390886FDFDFD5A073632FDFDFD86B3F6F6F6AFF6AFAFAFAF08AB0808398A8A8A39D432FDFD8286D4825A35FDFD82FFF6AFF6F6AFF6AF08D1AF08AFD43D8A8A8A610831FDFD5EFFAF088232363286FFFFF6F6AFF6AFF6AFAF08AF08085D61613D5DD4F5FDFD82F6F6AF085A825E82FFFFFFFFF6D1F6AFF6AFF6AFAFAF080808D408D431FDFD86D4FFFF095EFDFD09FFFFFFFFFFF6B3F6F6AFAFD108AFAFAF08AB09860DFDFDFD08825E86FDFDFD82FFFFFFFFFFFFF6F6AFF6F6AFF6AF08D1AF08088232FDFDFDFDFDFDFDFDFDFD86FFFFFFFFFFFFFFFFFFF6AFF6AFF6AFAF08AF088331FDFDFDFDFDFDFDFDFDFDFD86FFFFFFFFFFFFFFFFFFFFF6F6AFF6AFAFAF0807FDFDFDFDFDFDFDFDFDFDFDFDFD86828682825EF75E5E5E5A5E5A5A07360736FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD5E31FDFDFDFDFDFD5E31FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD8232FDFDFDFDFDFD8232FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD5A360732FDFDFDFD5A360732FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD8286D4823607FDFD8286D4823607FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD5EFFAF088232FDFD5EFFAF088232FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF7D1FFAF0807FDFDF7D1FFAF0807FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD0808FFFF095EFDFD0808FFFF095EFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD0982F786FDFDFDFD0982F786FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFE000FFFFE000FFC00000FF800000FF000000FF000003870000030300000300000003000000030300000387000003FF000003FF800007FFC0000FFFFCFCFFFFFCFCFFFFF8787FFFF0303FFFF0303FFFF0303FFFF0303FFFF8787FFFFFFFFFFFFFFFFF280000001000000020000000010008000000000000000000000000000000000000000000000000000000000000008000008000000080800080000000800080008080000080808000C0DCC000F0CAA600AA3F2A00FF3F2A00005F2A00555F2A00AA5F2A00FF5F2A00007F2A00557F2A00AA7F2A00FF7F2A00009F2A00559F2A00AA9F2A00FF9F2A0000BF2A0055BF2A00AABF2A00FFBF2A0000DF2A0055DF2A00AADF2A00FFDF2A0000FF2A0055FF2A00AAFF2A00FFFF2A000000550055005500AA005500FF005500001F5500551F5500AA1F5500FF1F5500003F5500553F5500AA3F5500FF3F5500005F5500555F5500AA5F5500FF5F5500007F5500557F5500AA7F5500FF7F5500009F5500559F5500AA9F5500FF9F550000BF550055BF5500AABF5500FFBF550000DF550055DF5500AADF5500FFDF550000FF550055FF5500AAFF5500FFFF550000007F0055007F00AA007F00FF007F00001F7F00551F7F00AA1F7F00FF1F7F00003F7F00553F7F00AA3F7F00FF3F7F00005F7F00555F7F00AA5F7F00FF5F7F00007F7F00557F7F00AA7F7F00FF7F7F00009F7F00559F7F00AA9F7F00FF9F7F0000BF7F0055BF7F00AABF7F00FFBF7F0000DF7F0055DF7F00AADF7F00FFDF7F0000FF7F0055FF7F00AAFF7F00FFFF7F000000AA005500AA00AA00AA00FF00AA00001FAA00551FAA00AA1FAA00FF1FAA00003FAA00553FAA00AA3FAA00FF3FAA00005FAA00555FAA00AA5FAA00FF5FAA00007FAA00557FAA00AA7FAA00FF7FAA00009FAA00559FAA00AA9FAA00FF9FAA0000BFAA0055BFAA00AABFAA00FFBFAA0000DFAA0055DFAA00AADFAA00FFDFAA0000FFAA0055FFAA00AAFFAA00FFFFAA000000D4005500D400AA00D400FF00D400001FD400551FD400AA1FD400FF1FD400003FD400553FD400AA3FD400FF3FD400005FD400555FD400AA5FD400FF5FD400007FD400557FD400AA7FD400FF7FD400009FD400559FD400AA9FD400FF9FD40000BFD40055BFD400AABFD400FFBFD40000DFD40055DFD400AADFD400FFDFD40000FFD40055FFD400AAFFD400FFFFD4005500FF00AA00FF00001FFF00551FFF00AA1FFF00FF1FFF00003FFF00553FFF00AA3FFF00FF3FFF00005FFF00555FFF00AA5FFF00FF5FFF00007FFF00557FFF00AA7FFF00FF7FFF00009FFF00559FFF00AA9FFF00FF9FFF0000BFFF0055BFFF00AABFFF00FFBFFF0000DFFF0055DFFF00AADFFF00FFDFFF0055FFFF00AAFFFF00FFCCCC00FFCCFF00FFFF3300FFFF6600FFFF9900FFFFCC00007F0000557F0000AA7F0000FF7F0000009F0000559F0000AA9F0000FF9F000000BF000055BF0000AABF0000FFBF000000DF000055DF0000AADF0000FFDF000055FF0000AAFF000000002A0055002A00AA002A00FF002A00001F2A00551F2A00AA1F2A00FF1F2A00003F2A00553F2A00F0FBFF00A4A0A000808080000000FF0000FF000000FFFF00FF00000000000000FFFF0000FFFFFF00FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD353535FDFDFDFDFDFDFDFDFDFDFDFDFD356535FDFDFDFDFDFDFDFDFDFDFD39393985351111FDFDFDFDFDFDFDFDFD398A8A8A8A8935FDFDFDFDFDFD3131823D39398A393535FDFDFDFDFD32AF820808AB3DB239FDFDFDFDF5FDFD5AF6AFAFAF08393939FDFDFD5EFFF5F55EFFF6F6AFF6AF0886FDFDFDFD5EFDFD5EFFFFF6F6AFAFD4F5FDFDFDFDFDFDFDFDF75E5E5A5A0731FDFDFDFDFDFDFDFDFDFDFDFDF5FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF5FDFDFDFDFDFDFDFDFDFDFDFDFDFD5EFFF5FDFDFDFDFDFDFDFDFDFDFDFDFDFD5EFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFFFFFDFDFFC7FDFDFFC7FDFDFF01FDFDFF01FD39F8016261F0076139B00738110007FDFDB007FDFDF80F3231FF7F3132FF7F083DFE3F6166FF7F6161FFFF39352800000020000000400000000100200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002E5B35FC295231FF274F2FFF264D2EFF27502FFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306138FE329A4FFF2C9649FF259244FF2A5432FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000356A3DFC3FA259FF389D54FF319A4EFF2E5D36FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000397341FE4DAB66FF45A65FFF3DA158FF316439FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045874CFF43854BFF42824AFF407E47FF3F7C46FF5BB471FF53AF6AFF4BAA64FF356B3DFF34683CFF33673BFF326439FF306038FF00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000519F58FF85CF94FF7FCA8FFF77C689FF70C183FF69BD7DFF61B876FF59B370FF51AE6AFF49A963FF42A55CFF3B9F56FF387040FF00000000000000000000000000000000000000000000000000000000000000000000000089715F4689715FFF866E5BFF846B59FF816855FF7E6552FF7B624FFF79604CFF846E5CFFCAC1B9FF55A85DFF8FD59CFF8AD198FF84CD93FF7DCA8EFF76C688FF6EC082FF67BB7CFF5FB775FF58B26EFF50AD67FF48A861FF3E7A46FF000000000000000000000000000000000000000000000000000000000000000089715F46AE998AFFD2C0B6FFD0BDB3FFCEBBB1FFCCB9AEFFCBB6ABFFCAB4A9FFC7B2A6FFCCB8ADFFD4C4BCFF5AB061FF97DAA3FF93D8A0FF8ED49CFF88D097FF83CC92FF7BC98CFF75C487FF6DC081FF65BB7AFF5EB673FF56B16DFF43854AFF0000000000000000000000000000000000000000000000000000000000000000C3AFA2FFF3EFECFFE6DEDAFFE0D4CEFFDFD2CAFFDDCEC7FFDACCC3FFD8C9C1FFD6C6BDFFD8C8C1FFE1D6CFFF59AB60FF58AA5EFF56A75DFF55A65DFF57AA5EFF8DD39BFF87CF97FF81CC91FF4F9B57FF4B9352FF498D50FF478C4FFC46894DFC0000000000000000000000000000000000000000000000000000000000000000C4B0A3FFF7F3F1FFF5F0EEFFF2EDEBFFEFEAE7FFEEE6E3FFEBE3DFFFE8DFDBFFE6DCD6FFE4D8D2FFE1D4CEFFDED0CAFFDCCDC6FFD9C9C2FFD6C6BDFF57AB5EFF95D9A2FF91D69EFF8CD29AFF519E58FFDED2CBFFC4BAB2FF0000000000000000BEAFA531A69183C08D7664F8856C5AF8866B59C0826855310000000000000000C5B1A4FFF9F7F5FFF7F4F3FFF5F2EFFFF3EEECFFF0EBE8FFEFE8E4FFEDE4E1FFEAE1DDFFE7DDD8FFE4DAD4FFE2D7D0FFDFD3CCFFDCCEC8FFDACBC3FF5AAE62FF99DBA5FF99DAA4FF94D8A2FF54A45BFFDFD4CEFF846E5EFF0000000000000000BCADA2C0C7BAB0FFD7C7C1FFC3ADA1FF9D8373FF876D5AC00000000000000000C5B2A4FFFBFAF9FFF9F8F6FFF8F5F3FFF6F3F0FFF4EFEEFFF2ECEAFFF0EAE6FFEEE6E2FFEBE3DEFFE8DFDAFFE5DBD6FFE3D8D2FFE0D4CDFFDDD0C9FF5DB564FF99DBA5FF99DBA5FF99DBA5FF69B570FFDDD1CAFF69503BFF0000000000000000B19E90F8F9F7F6FFF0EAE8FFDCCEC6FFC2AEA1FF88705DF8866E5BFF846B59FFC6B2A5FFFDFDFDFFFCFAFAFFFBF9F8FFF9F6F5FFF7F3F2FFF5F0EEFFF2EEECFFF0EBE8FFEEE7E4FFECE4E0FFE9E1DCFFE6DDD7FFE4D9D4FFE2D6D0FF5DB263FF62BF69FF62BF69FF61BE68FF6AB671FFDED2CBFF6C523EFF0000000000000000B8A699F8F9F8F7FFFFFFFFFFF0EBE8FFD6C9C0FF937B6AF8C7B1A6FFB39A8AFFC6B3A5FFFFFFFFFFFFFDFEFFFDFBFBFFFBFAF9FFF9F8F6FFF7F5F3FFF5F2F0FFF3EFEDFFF1ECE9FFEFE9E5FFEDE6E2FFEBE3DEFFE8DFDAFFE6DBD5FFE2D8D2FFE0D4CDFFDDCFC9FFDFD1CBFFDED2CBFFDDCFC7FF6F5541FF0000000000000000CDC0B6C0DBD2CBFFFAF8F7FFF9F8F7FFCABDB4FFAB9789C00000000000000000C7B3A6FFFFFFFFFFFFFFFFFFFFFFFEFFFDFCFDFFFCFBFAFFFAF9F8FFF8F6F5FFF7F3F2FFF5F0EFFFF2EDEAFFF0EAE7FFEEE7E3FFEBE4DFFFE9E0DCFFE6DDD7FFE4D9D3FFE1D5CFFFDFD1CBFFD0BDB4FFC5B0A4FF725945FF0000000000000000DCD1CA31CFC1B7C0BBA99CF8B6A396F8C2B3A8C0C4B5AB310000000000000000C7B5A7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFFFCFCFBFFFBFAF8FFFAF7F6FFF7F5F2FFF6F2EFFFF3EFEDFFF2ECE9FFEFE9E5FFECE5E1FFEAE2DDFFE7DED9FFE5DBD5FFE2D7D1FFD3C2BAFFC8B3A8FF755C49FF00000000000000000000000000000000000000000000000000000000000000000000000000000000C8B5A8CAFFFFFFDAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFDFCFCFFFCFBFAFFFAF8F8FFF8F6F4FFF6F3F1FFF5F0EEFFF2EDEAFFF0EAE6FFEDE6E3FFEBE4DFFFE9E0DBFFE6DCD7FFDCCFC8FFCBB7ABFF795F4CFF0000000000000000000000000000000000000000000000000000000000000000000000000000000089715F31C5B1A4B2FFFFFFCDFFFFFFEAFFFFFFF4FFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFFFDFCFBFFFBFAF9FFFAF6F5FFF7F4F3FFF5F2EFFFF3EEECFFF1EBE8FFEFE8E5FFECE5E1FFEAE1DDFFE4DAD5FF866E5CFF866E5C46000000000000000000000000000000000000000000000000000000000000000000000000000000000000000089715F31C5B1A4B2C3AFA2D3C0AD9EE8BDA99CFFBBA698FFB7A495FFB5A091FFB19C8DFFAE9989FFAB9585FFA79281FFA48E7DFFA08A7AFF9C8675FF988271FF957E6DFF917A68FF8A7260FF866E5C460000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B39A8AFF846B59FF000000000000000000000000000000000000000000000000B39A8AFF846B59FF00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C7B1A6FF866E5BFF000000000000000000000000000000000000000000000000C7B1A6FF866E5BFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BEAFA531A69183C08D7664F8856C5AF8866B59C0826855310000000000000000BEAFA531A69183C08D7664F8856C5AF8866B59C082685531000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BCADA2C0C7BAB0FFD7C7C1FFC3ADA1FF9D8373FF876D5AC00000000000000000BCADA2C0C7BAB0FFD7C7C1FFC3ADA1FF9D8373FF876D5AC0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B19E90F8F9F7F6FFF0EAE8FFDCCEC6FFC2AEA1FF88705DF80000000000000000B19E90F8F9F7F6FFF0EAE8FFDCCEC6FFC2AEA1FF88705DF8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B8A699F8F9F8F7FFFFFFFFFFF0EBE8FFD6C9C0FF937B6AF80000000000000000B8A699F8F9F8F7FFFFFFFFFFF0EBE8FFD6C9C0FF937B6AF8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000CDC0B6C0DBD2CBFFFAF8F7FFF9F8F7FFCABDB4FFAB9789C00000000000000000CDC0B6C0DBD2CBFFFAF8F7FFF9F8F7FFCABDB4FFAB9789C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000DCD1CA31CFC1B7C0BBA99CF8B6A396F8C2B3A8C0C4B5AB310000000000000000DCD1CA31CFC1B7C0BBA99CF8B6A396F8C2B3A8C0C4B5AB3100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFE000FFFFE000FF800000FF000000FF000000FF000003030000030300000300000003000000030300000303000003FF000003FF000003FF800007FFFCFCFFFFFCFCFFFFF0303FFFF0303FFFF0303FFFF0303FFFF0303FFFF0303FFFFFFFFFFFFFFFFF2800000010000000200000000100200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFF4643854BFF407D47FF3B7643FFFFFFFF46000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000488E50FF7BC88DFF3F7D47FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055A65CFF519E58FF4D9554FF8AD29AFF43854BFF407E47FF3C7643FF00000000000000000000000000000000000000000000000000000000000000000000000059AE60FFA4E3B2FF9FE0ADFF9ADCA8FF94D9A3FF8ED59FFF407E47FF000000000000000000000000000000000000000000000000755B46FF6E5541FFC0B5ACFF5CB463FF59AE60FF55A65CFFAAE7B7FF4C9653FF478D4FFF44854BFF00000000000000000000000000000000FFFFFF31856D5AFFEDE6E3FFBFA79AFFD5C6BDFFD7C8C0FFD3C5BCFF59AE60FFB9F0C3FF509E58FF0000000000000000000000006348333B634833FF6348333BFFFFFF6A97806FFFF6F2F1FFF2EDEAFFEDE6E3FFE8E0DCFFE4D9D3FF5DB464FF59AE60FF55A75CFF000000000000000000000000AE9A8BFFFFFFFFFF634833FF634833FFA99484FFFDFBFCFFF9F7F7FFF6F3F0FFF2EDEAFFEDE7E3FFEBE3E0FFD9CEC7FFC4BAB2FF0000000000000000000000006348333BAE9A8BFF6348333BFFFFFF79B29D8EFFFFFFFFFFFCFCFBFFFAF8F7FFF6F2F1FFF2EDEAFFE9E0DBFFDFD2CBFF694E3AFF000000000000000000000000000000000000000000000000FFFFFF4600000000B6A193FFAE9A8BFFA79181FF9F8979FF97806FFF876F5DFF785F4CFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000634833FF00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006348333F634833FF6348333F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000AE9A8BFFFFFFFFFF634833FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006348333FAE9A8BFF6348333F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFF0000FF830000FFC70000FF010000FF010000F8010000E0070000000700000007000000070000E80F0000FF7F0000FE3F0000FE3F0000FE3F0000FFFF0000</AboutIconData>
-    <FriendlyName>NPanday ${pom.version} Maven in .NET Applications</FriendlyName>
-    <Description>NPanday ${pom.version} provides Maven 2.x plugins to support building of .NET applications</Description>
-    <LoadBehavior>0</LoadBehavior>
-    <CommandLineSafe>0</CommandLineSafe>
-    <CommandPreload>1</CommandPreload>    
-  </Addin>
-</Extensibility>
diff --git a/plugins/maven-vsinstaller-plugin/src/main/script/plexus_component_xml.groovy b/plugins/maven-vsinstaller-plugin/src/main/script/plexus_component_xml.groovy
deleted file mode 100644
index 7222a59..0000000
--- a/plugins/maven-vsinstaller-plugin/src/main/script/plexus_component_xml.groovy
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import npanday.lifecycle.LifecycleConfigurationGenerator
-
-def plexus = new File(project.build.outputDirectory, 'META-INF/plexus')
-plexus.mkdirs()
-
-def componentsXmlFile = new File(plexus, 'components.xml');
-
-LifecycleConfigurationGenerator
-		.persistAllTypesAndLifecycles(project.version, componentsXmlFile)
diff --git a/plugins/maven-vsinstaller-plugin/src/site/apt/examples/install-from-file-system.apt b/plugins/maven-vsinstaller-plugin/src/site/apt/examples/install-from-file-system.apt
deleted file mode 100644
index 7192f32..0000000
--- a/plugins/maven-vsinstaller-plugin/src/site/apt/examples/install-from-file-system.apt
+++ /dev/null
@@ -1,74 +0,0 @@
- ----
- Install From File System
- ----
- ----
- 2010-07-05
- ----
-~~Licensed to the Apache Software Foundation (ASF) under one
-~~or more contributor license agreements.  See the NOTICE file
-~~distributed with this work for additional information
-~~regarding copyright ownership.  The ASF licenses this file
-~~to you under the Apache License, Version 2.0 (the
-~~"License"); you may not use this file except in compliance
-~~with the License.  You may obtain a copy of the License at
-~~
-~~    http://www.apache.org/licenses/LICENSE-2.0
-~~
-~~Unless required by applicable law or agreed to in writing,
-~~software distributed under the License is distributed on an
-~~"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-~~KIND, either express or implied.  See the License for the
-~~specific language governing permissions and limitations
-~~under the License.
-
-Install From File System
-
- First, make sure that the repository containing the NPanday assemblies and vsinstaller is located on your local file
- system. Typically, you would only do this for testing or for installing from a non-standard repo location.
- Next, configure your settings.xml file to point to your repo.
-
-+----+
-<settings>
-  <profiles>
-    <profile>
-      <id>npanday.snapshots</id>
-      <repositories>
-        <repository>
-          <id>local</id>
-          <name>NPanday Snapshots</name>
-          <url>file://C:\m2\repo</url>
-          <releases>
-            <enabled>false</enabled>
-          </releases>
-          <snapshots>
-            <enabled>true</enabled>
-          </snapshots>
-        </repository>
-      </repositories>
-      <pluginRepositories>
-        <pluginRepository>
-          <id>local</id>
-          <name>NPanday Plugin Snapshots</name>
-          <url>file://C:\m2\repo</url>
-          <releases>
-            <enabled>false</enabled>
-          </releases>
-          <snapshots>
-            <enabled>true</enabled>
-          </snapshots>
-        </pluginRepository>
-      </pluginRepositories>
-    </profile>
-  </profiles>
-</settings>
-+----+
-
- Due to a bug in Maven, if you are remotely resolving a plugin that doesn't exist in central, you will need to install
- from a directory containing a pom.xml file. So if you have a pom.xml handy, goto that directory from the command line.
- If not, you will need to download one and goto to the download directory from the command line. Now type the following from
- the command line:
-
-+----+
- mvn org.apache.npanday.plugins:maven-vsinstaller-plugin:install
-+----+
-
diff --git a/plugins/maven-vsinstaller-plugin/src/site/apt/examples/install-from-remote-repo.apt b/plugins/maven-vsinstaller-plugin/src/site/apt/examples/install-from-remote-repo.apt
deleted file mode 100644
index 9ed1361..0000000
--- a/plugins/maven-vsinstaller-plugin/src/site/apt/examples/install-from-remote-repo.apt
+++ /dev/null
@@ -1,75 +0,0 @@
- ----
- Install From Remote Repo
- ----
- ----
- 2010-07-05
- ----
-~~Licensed to the Apache Software Foundation (ASF) under one
-~~or more contributor license agreements.  See the NOTICE file
-~~distributed with this work for additional information
-~~regarding copyright ownership.  The ASF licenses this file
-~~to you under the Apache License, Version 2.0 (the
-~~"License"); you may not use this file except in compliance
-~~with the License.  You may obtain a copy of the License at
-~~
-~~    http://www.apache.org/licenses/LICENSE-2.0
-~~
-~~Unless required by applicable law or agreed to in writing,
-~~software distributed under the License is distributed on an
-~~"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-~~KIND, either express or implied.  See the License for the
-~~specific language governing permissions and limitations
-~~under the License.
-
-Install From Remote Repo
-
- First, configure your settings.xml file to point to your repo. You may choose to enter the public snapshot repo
- below or to enter your own repo that hosts the NPanday VS installer.
-
-+----+
-  <profiles>
-    <profile>
-      <id>apache.snapshots</id>
-      <activation>
-        <activeByDefault>true</activeByDefault>
-      </activation>
-      <repositories>
-        <repository>
-          <id>org.apache</id>
-          <name>Maven Snapshots</name>
-          <url>http://people.apache.org/repo/m2-snapshot-repository</url>
-          <releases>
-            <enabled>false</enabled>
-          </releases>
-          <snapshots>
-            <enabled>true</enabled>
-          </snapshots>
-        </repository>
-      </repositories>
-      <pluginRepositories>
-        <pluginRepository>
-          <id>org.apache</id>
-          <name>Maven Plugin Snapshots</name>
-          <url>http://people.apache.org/repo/m2-snapshot-repository</url>
-          <releases>
-            <enabled>false</enabled>
-          </releases>
-          <snapshots>
-            <enabled>true</enabled>
-          </snapshots>
-        </pluginRepository>
-      </pluginRepositories>
-    </profile>
-  </profiles>
-+----+
-
- Due to a bug in Maven, if you are remotely resolving a plugin that doesn't exist in central, you will need to install
- from a directory containing a pom.xml file. So if you have a pom.xml handy, goto that directory from the command line.
- If not, you will need to download the {{{./pom.xml}pom.xml}} and goto to the download directory from the command line.
- Now type the following from the command line:
-
-+----+
- mvn org.apache.npanday.plugins:maven-vsinstaller-plugin:install
-+----+
-
- This will download the plugin and all of its dependencies.
diff --git a/plugins/maven-vsinstaller-plugin/src/site/apt/index.apt b/plugins/maven-vsinstaller-plugin/src/site/apt/index.apt
deleted file mode 100644
index 5effba4..0000000
--- a/plugins/maven-vsinstaller-plugin/src/site/apt/index.apt
+++ /dev/null
@@ -1,29 +0,0 @@
- ----
- Introduction
- ----
- ----
- 2010-07-05
- ----
-~~Licensed to the Apache Software Foundation (ASF) under one
-~~or more contributor license agreements.  See the NOTICE file
-~~distributed with this work for additional information
-~~regarding copyright ownership.  The ASF licenses this file
-~~to you under the Apache License, Version 2.0 (the
-~~"License"); you may not use this file except in compliance
-~~with the License.  You may obtain a copy of the License at
-~~
-~~    http://www.apache.org/licenses/LICENSE-2.0
-~~
-~~Unless required by applicable law or agreed to in writing,
-~~software distributed under the License is distributed on an
-~~"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-~~KIND, either express or implied.  See the License for the
-~~specific language governing permissions and limitations
-~~under the License.
-
-Maven Visual Studio 2005 Installer Plugin
-
- The VS2005 Installer plugin installs the dependent Java archives and .NET assemblies needed to run NPanday and creates
-   a Visual Studio Addin file that Visual Studio will use to load the addin.
-
-   
diff --git a/plugins/maven-vsinstaller-plugin/src/site/apt/usage.apt b/plugins/maven-vsinstaller-plugin/src/site/apt/usage.apt
deleted file mode 100644
index 59a16f3..0000000
--- a/plugins/maven-vsinstaller-plugin/src/site/apt/usage.apt
+++ /dev/null
@@ -1,63 +0,0 @@
- ----
- Usage
- ----
- ----
- 2010-07-05
- ----
-~~Licensed to the Apache Software Foundation (ASF) under one
-~~or more contributor license agreements.  See the NOTICE file
-~~distributed with this work for additional information
-~~regarding copyright ownership.  The ASF licenses this file
-~~to you under the Apache License, Version 2.0 (the
-~~"License"); you may not use this file except in compliance
-~~with the License.  You may obtain a copy of the License at
-~~
-~~    http://www.apache.org/licenses/LICENSE-2.0
-~~
-~~Unless required by applicable law or agreed to in writing,
-~~software distributed under the License is distributed on an
-~~"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-~~KIND, either express or implied.  See the License for the
-~~specific language governing permissions and limitations
-~~under the License.
-
-Usage
-
-* Prerequisites
-
- Prior to using the Visual Studio installer plugin, make sure that you have the following installed on your system:
-
-  [[1]] {{{ http://java.sun.com/javase/downloads/index_jdk5.jsp} JDK 5.0 Update x}}
-
-  [[2]] Both {{{http://msdn2.microsoft.com/en-us/downloads/default.aspx} Microsoft .NET Framework}} (2.0+)
-     AND {{{http://msdn2.microsoft.com/en-us/downloads/default.aspx} NET Framework 2.0 SDK}}. Note that the 2.0+ framework
-     is required to run NPanday, but you can still target 1.1 for your builds provided that the 1.1 version
-     is also installed.
-
-  [[3]] {{{http://nunit.org/index.php?p=download} NUnit 2.2+ (only if using unit tests)}}.
-
-  [[4]] {{{http://maven.apache.org/download.html} Maven 2.0.4 or higher}}
-
-  [[5]]   Visual Studio 2005 Standard or higher is needed to use the NPanday Addin
-    (Visual Studio Express Edition will not work)
-
-    []
-
- For the install only, you will also need to make sure that you have both the SDK and the .NET framework locations within your path. Typical
- locations include:
-
- * install root: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
-
- * SDK root: C:\Program Files\Microsoft.NET\SDK\v2.0\
-
-* Installing
-
- If you have built NPanday locally on your machine, you can just type:
-
-+----+
- mvn org.apache.npanday.plugins:maven-vsinstaller-plugin:install
-+----+
-
- If you have not built NPanday locally and are just looking to use the binary distribution, then check out the instructions here:
- {{{examples/install-from-remote-repo.html} Install From Remote Repo}}
-
diff --git a/plugins/maven-vsinstaller-plugin/src/site/resources/examples/pom.xml b/plugins/maven-vsinstaller-plugin/src/site/resources/examples/pom.xml
deleted file mode 100644
index 68681ec..0000000
--- a/plugins/maven-vsinstaller-plugin/src/site/resources/examples/pom.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<project>
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.npanday</groupId>
-  <artifactId>vsinstaller</artifactId>
-  <packaging>dotnet-library</packaging>
-  <version>1.1-SNAPSHOT</version>
-  <name>vsinstaller</name>
-</project>
diff --git a/plugins/maven-vsinstaller-plugin/src/site/site.xml b/plugins/maven-vsinstaller-plugin/src/site/site.xml
deleted file mode 100644
index 88cfd8c..0000000
--- a/plugins/maven-vsinstaller-plugin/src/site/site.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<project xmlns="http://maven.apache.org/DECORATION/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 http://maven.apache.org/xsd/decoration-1.0.0.xsd">
-  <body>
-    <menu ref="parent" />
-
-    <menu name="Overview">
-      <item name="Introduction" href="index.html"/>
-      <item name="Goals" href="plugin-info.html"/>
-      <item name="Usage" href="usage.html"/>
-    </menu>
-
-    <menu name="Examples">
-      <item name="Install From File System" href="examples/install-from-file-system.html"/>
-      <item name="Install From Remote Repo" href="examples/install-from-remote-repo.html"/>      
-    </menu>
-
-    <menu ref="reports" />
-  </body>
-</project>
diff --git a/plugins/maven-vsinstaller-plugin/src/test/groovy/npanday/plugin/vsinstaller/VsInstallerMojoTest.groovy b/plugins/maven-vsinstaller-plugin/src/test/groovy/npanday/plugin/vsinstaller/VsInstallerMojoTest.groovy
deleted file mode 100644
index d5de7ff..0000000
--- a/plugins/maven-vsinstaller-plugin/src/test/groovy/npanday/plugin/vsinstaller/VsInstallerMojoTest.groovy
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package npanday.plugin.vsinstaller
-
-import javax.swing.filechooser.FileSystemView;
-
-import junit.framework.Assert;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-public class VsInstallerMojoTest{
-	String oldUserHome
-	File tempDir
-	File myDocumentsDir
-	VsInstallerMojo mojo
-	
-	@Before
-	final void setup(){
-		oldUserHome = System.properties["user.home"]
-		tempDir = new File(System.properties["java.io.tmpdir"], this.class.name)
-		myDocumentsDir = new File(tempDir, "My Documents")
-		
-		tempDir.mkdirs()
-		System.properties["user.home"] = tempDir.getAbsolutePath()
-		mojo = new VsInstallerMojo()
-		
-		def fw = [getDefaultDirectory:{myDocumentsDir}] as FileSystemView	
-		mojo.filesystemView = fw
-	}
-	
-	@After
-	final void teardown(){
-		tempDir.deleteDir()
-		mojo = null
-	}
-	
-	@Test
-	final void testCollectDefaultVSAddinDirectoriesWithMissingAddinDirectory(){
-		mojo.collectDefaultVSAddinDirectories()
-		List results = mojo.vsAddinDirectories
-		
-		Assert.assertEquals(0, results.size());
-	}
-	
-	@Test
-	final void testcollectDefaultVSAddinDirectories(){
-		new File(myDocumentsDir, "Visual Studio 2005").mkdirs()
-		new File(myDocumentsDir, "Visual Studio 2008").mkdirs()
-		
-		mojo.collectDefaultVSAddinDirectories()
-		List results = mojo.vsAddinDirectories
-		
-		Assert.assertEquals(2, results.size());
-	}
-	
-	@Test
-	final void testCollectDefaultVSHomeDirectoriesWithAdditionalPaths(){
-		mojo.vsAddinDirectories.add new File(tempDir, "AddIns")
-		mojo.collectDefaultVSAddinDirectories()
-		List results = mojo.vsAddinDirectories
-		
-		Assert.assertEquals(1, results.size());
-	}
-	
-	@Test
-	final void testCollectDefaultVSHomeDirectoriesWithDifferentLocations(){
-		File germanMyDocumentsDir = new File(tempDir, "Eigene Dateien")
-		def fw = [getDefaultDirectory:{germanMyDocumentsDir}] as FileSystemView	
-		mojo.filesystemView = fw
-		
-		new File(germanMyDocumentsDir, "Visual Studio 2008").mkdirs()
-		
-		mojo.collectDefaultVSAddinDirectories()
-		List results = mojo.vsAddinDirectories
-		
-		Assert.assertEquals(1, results.size());
-	}
-	
-	@Test
-	final void testWritePlugin(){
-		mojo.vsAddinDirectories.add new File(tempDir, "AddIns")
-		mojo.collectDefaultVSAddinDirectories()
-		List results = mojo.vsAddinDirectories
-		
-		mojo.installationLocation = new File ( tempDir, "bin" )
-		mojo.localRepository = tempDir.getPath()+"/m2/repo"
-		
-		results.each{ mojo.writePlugin it  }
-		
-		Assert.assertTrue new File(tempDir, "AddIns/NPanday.VisualStudio.AddIn").exists()
-	}
-	
-	@Test
-	final void testWritePluginIn2008GermanDir(){
-		File germanMyDocumentsDir = new File(tempDir, "Eigene Dateien")
-		def fw = [getDefaultDirectory:{germanMyDocumentsDir}] as FileSystemView	
-		mojo.filesystemView = fw
-		
-		def v2008 = new File(germanMyDocumentsDir, "Visual Studio 2008")
-		v2008.mkdirs()
-		
-		mojo.collectDefaultVSAddinDirectories()
-		List results = mojo.vsAddinDirectories
-		
-		mojo.installationLocation = new File ( tempDir, "bin" )
-		mojo.localRepository = tempDir.getPath()+"/m2/repo"
-		
-		results.each{ mojo.writePlugin it }
-		
-		Assert.assertTrue new File(v2008, "AddIns/NPanday.VisualStudio.AddIn").exists()
-	}
-}
diff --git a/plugins/pom.xml b/plugins/pom.xml
index 197c7b8..01df51c 100644
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -46,7 +46,6 @@
     <module>maven-resgen-plugin</module>
     <module>maven-resolver-plugin</module>
     <module>maven-test-plugin</module>
-    <module>maven-vsinstaller-plugin</module>
     <module>maven-xsd-plugin</module>
     <module>maven-xsp-plugin</module>
     <module>maven-wsdl-plugin</module>
diff --git a/site/src/site/apt/faqs.apt b/site/src/site/apt/faqs.apt
index 242ce64..2ee2ede 100644
--- a/site/src/site/apt/faqs.apt
+++ b/site/src/site/apt/faqs.apt
@@ -62,13 +62,6 @@
   In addition, NPanday brings Maven's dependency management and other plugins (such as developer site generation) to
   .NET projects with little additional work needed.
   
-* How can a custom <<<settings.xml>>> be used for the Visual Studio Add-in?
-  
-  Add the <<<\-DsettingsFile\=\[path_to_custom_settings.xml_file\]>>> parameter when executing
-  <<<mvn org.apache.npanday.plugins:maven\-vsinstaller\-plugin:install>>>. For example,
-  
-  <<<mvn org.apache.npanday.plugins:maven\-vsinstaller\-plugin:install \-DsettingsFile\="C:\\common\\settings.xml">>>
-  
 * How do I set the root namespace for a Visual Basic assembly?
   
   Add the <<< \<rootNameSpace\> >>> element under <<< \<configuration\> >>> inside the <<<maven-compile-plugin>>> plugin.
