2008-10-14 8 views
23

Ich habe eine Assembly mit sehr gründlicher XML-basierter Dokumentation, die über Sandcastle verwendet wird, um die Hilfedateien für das Produkt zu generieren. Wir verwenden auch die XML-Ausgabedateien zum Bereitstellen von Intellisense in Visual Studio, wenn Programmierer die Assembly offensichtlich verwenden.Einbetten von Intellisense Xml-Dokumentation in Assembly?

Um dies zu tun, haben wir anscheinend sowohl den Benutzer mit der Assembly ("assembly.dll") als auch mit der Dokumentation ("assembly.xml") versorgt.

Ist es irgendwie möglich, die Dokumentation in die Assembly einzubetten, sodass wir nur die einzelne Assembly-Datei bereitstellen müssen und Visual Studio die Informationen extrahieren könnte? Vielleicht eingebettet als Ressource oder so?

Antwort

13

Leider müssen Sie beides liefern, da Visual Studio nur XML-Dokumente für Intellisense betrachten kann.

+1

Eine Schande. Die entsprechende Dokumentation ist in COM-Server (DLLs) eingebettet. Schwer vorstellbar würde es die Dateigröße sehr erhöhen. – MarkJ

1

Fehle ich etwas? Ich sage immer wie gewohnt (mit 3 Schrägstrichen oder 3 Häkchen (vb)), benutze die eingebauten XML-Tags und wenn ich die Assembly verwende, bekomme ich den Intellisense - ich benutze selten eine externe XML-Datei.

+2

Erhalten Sie Intellisense wie in Code-Vervollständigung, oder erhalten Sie tatsächlich die Dokumentation, die Sie geschrieben haben? I.e. VS kann die Methodenlisten und ihre Parameter und dergleichen natürlich automatisch erzeugen, aber wenn ich nicht sicher bin, dass die Dokumentation auch auf dem Host-Rechner verfügbar ist, bekomme ich die Dokumente nicht. – ulrikj

5

Wenn Sie nach C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 suchen, werden Sie feststellen, dass alle .net-Assemblys, auf die Sie in Ihren Anwendungen verweisen, die XML-Dateien verwenden. Visual Studio stellt nur dann Intellisense für Assemblys bereit, wenn die XML-Datei vorhanden ist. Wenn Sie beispielsweise Visual Studio schließen, dann die Datei System.Drawing.xml entfernen und dann VS erneut öffnen, sollte für diese Assembly kein Intellisense vorhanden sein. Sie müssten dann VS schließen, es zurück kopieren und dann VS wieder öffnen, damit das Intellisense wieder funktioniert.

+0

Eigentlich, wenn Sie die XML-Datei entfernen, gibt es noch _some_ Intellisense. Sie werden keine Ihrer Kommentare "///" sehen, aber Sie erhalten immer noch Methodensignaturen und Überladungen. Vermutlich geschieht dies durch Reflexion. –