locked
Sandcastle June 2007 CTP - Help 1.x Index Duplicate Names RRS feed

  • Question

  • Hi,

     

    The June 2007 CTP generates CHM index entries with duplicate Name values, although each references a unique file.  For example:

     

    Example .HHK snippet
    <LI><OBJECT type="text/sitemap">
      <param name="Name" value="ConsoleSwitch class">
      <param name="Local" value="html/guid-two.htm">
    </OBJECT><LI>
    <LI><OBJECT type="text/sitemap">
      <param name="Name" value="ConsoleSwitch class">
      <param name="Local" value="html/guid-one.htm">
    </OBJECT><LI>

     

    Each file represents one particular page; e.g., the main API page, Methods, Properties, etc..

     

    Could this be changed in the next release to use more descriptive names, such as ConsoleSwitch methods, or is there some technical requirement to have duplicates?

     

    Thanks.

    Tuesday, June 19, 2007 8:35 PM

Answers

  • I see the same results with SHFB 1.5.0.0 (VS2005 and HANA styles).  When you view the index in the help file you get one "TestClass class" and one "TestClass.TestClass class" entry.  Clicking either one of those brings up the "Select a topic" dialog listing entries for the Class, Methods, and Properties pages.  I think these should be listed directly in the index each with their own unique name.

     

    Eric

     

    Tuesday, June 26, 2007 4:55 PM

All replies

  • Dave - Which transforms are you using. I cannot repro this issue with VS 2005 transforms.

     

    Anand..

    Tuesday, June 19, 2007 11:04 PM
    Moderator
  • Hi Anand,

     

    I tried to simplify the process and it still produces the same results.  I must be missing something.

     

    To test this I first created a library with only one class and no dependencies (aside form mscorlib):

     

    TestLib.dll

    namespace TestLib

    {

      public class TestClass

      {

        public string PropertyA { get { return null; } }

        public float PropertyB { get { return 0F; } }

        public TestClass() { }

        public TestClass(object o) { }

        public void MethodA(string s) { }

        public void MethodA(int i) { }

        public void MethodB() { }

      }

    }

     

     Then I created a simplified batch script with only the steps required to generate the .HHK file:

     

    Test.bat  (watch for wrapping)

    "%DXROOT%\ProductionTools\MRefBuilder" /out:reflection.org "TestLib.dll"

     

    "%DXROOT%\ProductionTools\XslTransform"

      /xsl:"%DXROOT%\ProductionTransforms\%DocModel%.xsl" reflection.org

      /xsl:"%DXROOT%\ProductionTransforms\AddGuidFilenames.xsl"

      /out:"reflection.xml" /arg:IncludeAllMembersTopic=true /arg:IncludeInheritedOverloadTopics=true

     

    "%DXROOT%\ProductionTools\XslTransform"

      /xsl:"%DXROOT%\ProductionTransforms\ReflectionToChmIndex.xsl"

      "reflection.xml" /out:"test.hhk"

     

    The results are:

     

    test.hhk - ApplyPrototypeDocModel (NOTE: without the two /arg: parameters)

    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML/EN">

    <HTML>

    <BODY>

    <UL>

    <LI><OBJECT type="text/sitemap">

    <param name="Name" value="TestLib namespace">

    <param name="Local" value="html/ee2edf72-6f8b-6c71-3b45-2034f65c4359.htm">

    </OBJECT><LI>

    <LI><OBJECT type="text/sitemap">

    <param name="Name" value="TestClass class">

    <param name="Local" value="html/24d585e2-378f-e6e1-87e0-99b5638c8f05.htm">

    </OBJECT><LI>

    <LI><OBJECT type="text/sitemap">

    <param name="Name" value="TestLib.TestClass class">

    <param name="Local" value="html/24d585e2-378f-e6e1-87e0-99b5638c8f05.htm">

    </OBJECT><LI>

    </UL>

    </BODY>

    </HTML>

     

    test.hhk - ApplyVSDocModel (NOTE: with the two /arg: parameters)

    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML/EN">

    <HTML>

    <BODY>

    <UL>

    <LI><OBJECT type="text/sitemap">

    <param name="Name" value="TestLib namespace">

    <param name="Local" value="html/ee2edf72-6f8b-6c71-3b45-2034f65c4359.htm">

    </OBJECT><LI>

    <LI><OBJECT type="text/sitemap">

    <param name="Name" value="TestClass class">

    <param name="Local" value="html/24d585e2-378f-e6e1-87e0-99b5638c8f05.htm">

    </OBJECT><LI>

    <LI><OBJECT type="text/sitemap">

    <param name="Name" value="TestLib.TestClass class">

    <param name="Local" value="html/24d585e2-378f-e6e1-87e0-99b5638c8f05.htm">

    </OBJECT><LI>

    <LI><OBJECT type="text/sitemap">

    <param name="Name" value="TestClass class">

    <param name="Local" value="html/02a22aa3-56ee-1d13-9a6c-e2fcf7afb264.htm">

    </OBJECT><LI>

    <LI><OBJECT type="text/sitemap">

    <param name="Name" value="TestLib.TestClass class">

    <param name="Local" value="html/02a22aa3-56ee-1d13-9a6c-e2fcf7afb264.htm">

    </OBJECT><LI>

    <LI><OBJECT type="text/sitemap">

    <param name="Name" value="TestClass class">

    <param name="Local" value="html/4108a297-1e23-2d5a-735e-deaa8530a4e5.htm">

    </OBJECT><LI>

    <LI><OBJECT type="text/sitemap">

    <param name="Name" value="TestLib.TestClass class">

    <param name="Local" value="html/4108a297-1e23-2d5a-735e-deaa8530a4e5.htm">

    </OBJECT><LI>

    <LI><OBJECT type="text/sitemap">

    <param name="Name" value="TestClass class">

    <param name="Local" value="html/c66dedf4-164e-8c4f-fef0-ee6f90e3f308.htm">

    </OBJECT><LI>

    <LI><OBJECT type="text/sitemap">

    <param name="Name" value="TestLib.TestClass class">

    <param name="Local" value="html/c66dedf4-164e-8c4f-fef0-ee6f90e3f308.htm">

    </OBJECT><LI>

    </UL>

    </BODY>

    </HTML>

     

    Thanks,

     

    - Dave

    Wednesday, June 20, 2007 3:47 AM
  • Hi,

     

    I just downloaded the June 2007 CTP Refresh and it still doesn't appear to be fixed.

     

    Can anyone confirm whether I've just missed a step somewhere?

     

    Thanks,

    Dave

    Tuesday, June 26, 2007 9:40 AM
  • I see the same results with SHFB 1.5.0.0 (VS2005 and HANA styles).  When you view the index in the help file you get one "TestClass class" and one "TestClass.TestClass class" entry.  Clicking either one of those brings up the "Select a topic" dialog listing entries for the Class, Methods, and Properties pages.  I think these should be listed directly in the index each with their own unique name.

     

    Eric

     

    Tuesday, June 26, 2007 4:55 PM
  • Agreed.  And thank you for confirming this.
    Tuesday, June 26, 2007 6:46 PM
  • Hi,

     

    Generic classes also get listed having the same name, example:

     

    Generic Class1<T>  and  non-generic Class1 both get listed as:

     

    Class1

    Class1

     

    But I would have expected it to be listed as:

     

    Class1<T>

    Class1

     

     

    Stephan

     

    Wednesday, June 27, 2007 7:14 AM