The VS.NET addin is really cool, and has a lot of potential, but is
currently a bit flaky including the setup.  The MSI install includes about 8
extra dependent assemblies that are already part of Visual Studio or the
.NET framework  Should all of these really have been installed along with
the add-in?

-Extensibility.dll
-Microsoft.VisualStudio.Designer.Interfaces.DLL
-Microsoft.VisualStudio.DLL
-Microsoft.VisualStudio.WizardFramework.DLL
-Microsoft.VSDesigner.DLL
-MSDDSLMP.dll
-MSDDSP.dll
-VSLangProj.dll

Is anyone working on polishing up the docking issues, install issues etc, to
really make this thing shine?  I think this addin would be a big boost to
the acceptance of NAnt.  Most Visual Studio Developers don't want to leave
their IDE to a command line to do their builds.

Thanks,
--Loren

--------
Following is just some more information about how I determined these weren't
needed for the addin to run:

I was curious to find the minimum set of assemblies and registry changes
necessary to run the add-in.  As a test I wrote a no-frills NAnt build
script to do just the bare miminum amount of registration needed to get the
addin running (not including the docs).  1) I copied all of the files in
"Tools\VSNetAddin\build\NAntAddin" into the folder I wanted the addin to run
from, 2) I also copied "Tools\VSNetAddin\RegisterAddin.txt" into this
folder.  Then I ran the register task in the following script from within
that folder.

<project name="NAntAddin" default="register" verbose="false">
  <property name="dest.dir" value="${nant.project.basedir}"/>
  <target name="register">
    <exec program="regsvr32" commandline="/s
&quot;${dest.dir}\VSUserControlHost.dll&quot;" />
    <exec program="regasm"
commandline="&quot;${dest.dir}\NAntAddin.dll&quot; /tlb:NAntAddin.tlb
/codebase" />
    <script language="C#">
      <code><![CDATA[
      public static void ScriptMain(Project project) {
        string sourcePath = Path.Combine(project.BaseDirectory,
project.Properties["dest.dir"]);
        string inputFileName = Path.Combine(project.BaseDirectory,
"RegisterAddin.txt");
        string registerFileName = Path.Combine(project.BaseDirectory,
"RegisterAddin.reg");
        StreamReader reader = File.OpenText(inputFileName);
        FileStream stream = null;
        try {
          string contents = reader.ReadToEnd();
          string curPath = sourcePath.Replace(@"\", @"\\");
          string newContents = contents.Replace("%CURRENT_DIRECTORY%",
curPath + @"\\");
          stream = File.Create(registerFileName);
          StreamWriter writer = new StreamWriter(stream);
          writer.Write(newContents);
          writer.Flush();
        }
        finally {
          reader.Close();
          stream.Close();
        }
      }
      ]]></code>
    </script>
    <exec program="regedit" commandline="/s
&quot;${dest.dir}\RegisterAddin.reg&quot;" />
    <delete file="${dest.dir}\RegisterAddin.reg" />
  </target>
  <target name="unregister">
    <exec program="regsvr32" commandline="/u /s
&quot;${dest.dir}\VSUserControlHost.dll&quot;" failonerror="true" />
    <exec program="regasm"
commandline="&quot;${dest.dir}\NAntAddin.dll&quot; /unregister" />
  </target>
</project>

The unregister task will remove it (except for the part that was added by
the .reg file...which VS will ask to remove for you if you try to load the
addin after it's been unregistered)

After registering the addin using this technique, it seemed to be fully
functional (except of course the documentation)


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
NAntContrib-Developer mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nantcontrib-developer

Reply via email to