Laden...
FAQ

[FAQ] Erstellung von Hilfe-Dateien (z.B. CHM) mit Hilfe von Tools

Erstellt von tom-essen vor 17 Jahren Letzter Beitrag vor 17 Jahren 53.960 Views
tom-essen Themenstarter:in
1.820 Beiträge seit 2005
vor 17 Jahren
[FAQ] Erstellung von Hilfe-Dateien (z.B. CHM) mit Hilfe von Tools

Hallo!

Möchte hier nochmal ein schon ziemlich breit gekautes Thema aufwärmen:
Es geht darum, dass ich aus dem Code-Kommentaren (summaries) eine MSDN-Datei erstellen will.
Dies hat (nach einigen Korrekturen) sowohl mit NDoc05 als auch mit SandCastle funktioniert (Weitere Infos dazu am Ende dieses Threads).
Ich kann die Dateien auch öffnen, es erscheint auch die Baumansicht, aber in der Ansicht steht "Die Seite kann nicht angezeigt werden.". Weder in den Foren der jeweiligen Programme noch im Internet konnte ich was finden, allerdings ist mein Englisch auch nicht das beste 8o.

EDIT: Lösung dazu weiter unten.

Nobody is perfect. I'm sad, i'm not nobody 🙁

2.223 Beiträge seit 2005
vor 17 Jahren

moin

hast du es mal auf einen anderen rechner versucht?

ich habe dieses problem auch bei versions konflikten beobachten können

mfg

tom-essen Themenstarter:in
1.820 Beiträge seit 2005
vor 17 Jahren

Hallo!

Hatte es bereits auf einem anderen XP-Rechner ausprobiert, aber ebenfalls erfolglos. Zudem ist der erste Rechner erst vor kurzem neu installiert worden (XP-Pro dt. inkl. SP2, VS2005pro dt., .NET2 dt.).

Hab's dann grade nochmal auf meinem Laptop mit XP Home dt. & Sp2 getestet, da wird die Datei korrekt angezeigt (aber auch NUR auf diesem Rechner) ?!?!?!?!

Muss ich dass jetzt verstehen??

Nobody is perfect. I'm sad, i'm not nobody 🙁

2.223 Beiträge seit 2005
vor 17 Jahren

dann tip ich jetzt erst rech auf versions konflikte

mfg

tom-essen Themenstarter:in
1.820 Beiträge seit 2005
vor 17 Jahren

Hallo!

Hab's grad nochmal etwas intensiver getestet:
Rechner1: XPpro, SP2, dt., .NET1.1 & .NET2.0
Rechner2: XPhome, SP2, dt., .NET1.1 & .NET2.0

CHM mit NDoc auf Rechner1 erstellt, lässt sich aber nur auf Rechner 2 anzeigen
CHM mit NDoc auf Rechner2 erstellt, lässt sich auf beiden Rechnern anzeigen.

Habe auf beiden Rechnern eine identische Version von NDoc verwendet, es muss also irgendwo im Windowssystem von Rechner1 einen Unterschied geben, oder?

Ich werd's morgen noch auf einem anderen XPpro-Rechner testen, hab' für heute die Motivation verloren.

Nobody is perfect. I'm sad, i'm not nobody 🙁

2.223 Beiträge seit 2005
vor 17 Jahren

ich meinte die Version vom HTML Help Control oder wie das Programm heißt dass die chm dateien anzeigt

mfg

726 Beiträge seit 2003
vor 17 Jahren

Hallo,
wenn sich eine chm-Datei auf dem einem System ausführen lassen und auf dem anderen nicht, so liegt das ev. an den Sicherheitseinstellungen im jeweiligen WinXP

einfach rechte Maustaste auf das Dokument,dann in die Eigenschaften,dann den Zugriff zulassen

Mir ging es ähnlich mit dem CHM-Files vom MSDN-Magazin, da hat das ZUlassen jedenfalls geholfen.

3.825 Beiträge seit 2006
vor 17 Jahren

Im Juli 2005 hat Microsoft ein ServicePak zu Windows XP herausgebracht, dass die Anzeige von CHM auf "nicht sicheren Laufwerken" verbietet. Netzwerklaufwerke gehören zu den "nicht sicheren Laufwerke".

Abhilfe schafft nur, die CHM-Datei auf ein lokales Laufwerk zu kopieren.

Wenn die CHM-Datei schon auf einem lokalen Laufwerk war, dann probier mal eine andere CHM-Datei aufzurufen. Wenn die geht dann wird es wohl an Deiner Datei liegen.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

tom-essen Themenstarter:in
1.820 Beiträge seit 2005
vor 17 Jahren

Hallo!

Netzlaufwerk scheidet aus, geht auch nicht auf lokalem Laufwerk. Ebenso sind alle Berechtigungen vorhanden.
Ich werd' morgen mal die Versionen aller beteiligten Programme vergleichen, hoffentlich finde ich dann etwas ...

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.820 Beiträge seit 2005
vor 17 Jahren
Lösung gefunden!!

Hallo!

Zunächst möchte ich allen für die schnelle und objektive Hilfe danken.

Es funktioniert nun.
Zunächst einmal kann ich BerndFfm bestätigen: Netzlaufwerke sind "böse" CHM-Quellen, egal welche Sicherheitseinstellungen im IE eingestellt sind.

Aber man kann Windows mit einer Registry-Änderung beibringen, dass CHM-Dateien doch "lieb" sein können 😁 :


REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp] 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000002

Mehr dazu steht unter Microsoft Hilfe.

Nochmal Dank an alle für die Hilfe.

Nobody is perfect. I'm sad, i'm not nobody 🙁

2.223 Beiträge seit 2005
vor 17 Jahren

Ich denke das eines von den beiden das Problem gelöst hat

  • SP2 erneut runtergeladen und aufgespielt
  • HtmlHelpViewer von XPhome nach XPpro kopiert <-- am wahrscheinlichsten

mfg

tom-essen Themenstarter:in
1.820 Beiträge seit 2005
vor 17 Jahren

Hallo!

EDIT: Lösung siehe meinen vorherigen Beitrag

Nobody is perfect. I'm sad, i'm not nobody 🙁

tom-essen Themenstarter:in
1.820 Beiträge seit 2005
vor 17 Jahren
Probleme bei der Erstellung von CHM-Hilfe-Dateien aus Quellcode-Kommentaren mit Hilfe von Tools

Wer seinen Quellcode kommentiert hat, und daraus nun z.B. eine Windows-Hilfe-Datei erstellen will, sollte zunächst in den jeweiligen Projekt-Eigenschaften unter "Erstellen" die Option "XML-Dokumentationsdatei" aktivieren, der vorgegebene Pfad kann beibehalten werden, er ist relativ zum Projektverzeichnis.

Die jeweiligen XML-Dateien werden bei jedem Build neu erstellt.

Um aus diesen Programmen nun einen normal lesbaren Text zu erstellen, benötigt man zusätzliche Tools.

NDoc (veraltet)
Für .NET1.1/Visual Studio .NET 2003 gab es NDoc, ein OpenSource-Projekt auf http://ndoc.sourceforge.net/, dieses wird jedoch seit 2005 nicht mehr weiterentwickelt.

NDoc05
Das Nachfolgeprojekt von NDoc, NDoc05 befindet sich ebenfalls SourceForge unter "http://sourceforge.net/projects/ndoc05/" und unterstützt auch .NET2.0/Visual Studio 2005.

Wenn man das Programm öffnet, kann man mit dem Punkt "From Visual Studio 2005 Solution" automatisch die Einstellungen und verwendeten Projekte einer Visual Studion 2005-Projektmappe übernehmen.

Dann sollte man noch einige Einstellungen bzgl. Titel, Namespace, ... vornehmen, und kann dann direkt die erste Hilfedatei erstellen.

Wer bei der Erstellung die Fehlermeldung> Fehlermeldung:

Exception: NDoc.Core.DocumenterException

erhält, sollte überprüfen, ob alle für die zu dokumentierende Projektmappe benötigten Assemblies (ausser den .NET-Assemblies) in den entsprechenden Verzeichnissen liegen.

Wer die Fehlermeldung> Fehlermeldung:

Exception: NDoc.Core.DocumenterException
at NDoc.Documenter.Msdn.MsdnDocumenter.Build(Project _project) in C:\Documents and Settings\Administrator\Desktop\NDoc2005\src\Documenter\Msdn\MsdnDocumenter.cs:line 565

at NDoc.Gui.BuildWorker.ThreadProc() in C:\Documents and Settings\Administrator\Desktop\NDoc2005\src\Gui\BuildWorker.cs:line 88

erhält (wichtig sind hier die Dateien MsdnDocumenter.cs und BuildWorker.cs), der wird nicht umher kommen, den Quellcode anzupassen. NDoc mag' es nicht, wenn referenzierte Assemblies nicht als lokale Kopie vorliegen (auch wenn dies in den Projekteinstellungen so eingestellt ist), und hat teilweise Probleme mit dem Zugriff auf einige, selbsterstellte HTML-Dateien.

Die Änderungen betreffen die Datei "MsdnHtmlUtilitiesV20.cs", Zeile 263, Methode InitializeNamespaces:
Im Abschnitt


if (assembly == null)
{
    throw new System.IO.FileNotFoundException(String.Concat("Unable to locate the referenced Assembly ", an.Name));
}

ist vor der throw-Zeile ein "continue" einzusetzen. Auswirkungen in der Hilfedatei habe ich noch nicht feststellen können.

Eine weitere Änderung ist evtl. in Zeile 330, in der Methode UpdateHtmlHrefs nötig.

Dort habe ich den Abschnitt


System.IO.File.Replace(tempFile, fullPath, fullPath + ".bak");
System.IO.File.Delete(fullPath + ".bak");

durch


//System.IO.File.Replace(tempFile, fullPath, fullPath + ".bak");
//System.IO.File.Delete(fullPath + ".bak");
System.IO.File.Copy(tempFile, fullPath, true);

ersetzt, danach hat bei mir alles fehlerfrei funktioniert.

SandCastle
Ein anderes Programm ist SandCastle, zu finden unter "http://www.sandcastledocs.com".
SandCastle ist ein Kommandozeilen-Programm, welches jedoch auch eine Gui mitbringt, die nahezu identisch mit der von NDoc und NDoc05 ist, somit ist auch die Bedienung analog zu diesen Programmen.
Der einzige Unterschied liegt darin, dass die erstellten Hilfedateien ein wenig anders aussehen.

DoxyGen
Ein weiteres Programm ist "Doxygen", zu finden unter "http://www.doxygen.org/", Informationen gibt's auch unter "http://de.wikipedia.org/wiki/Doxygen". Leider habe ich mit diesem Programm noch nicht gearbeitet, scheint aber für C# auch nur bedingt geeignet zu sein. Wenn jemand Erfahrungen damit hat, kann er diesen Beitrag ja entsprechend erweitern ...

Die erstellte Hilfedatei
Wenn NDoc/NDoc oder Sandcastle ohne Fehlermeldung durchgelaufen sind, ist das Resultat eine Hilfe-Datei im CHM-Format. Wenn man diese Datei öffnet, und im Viewer auch links die Baumansicht angezeigt wird, in der Ansicht aber die Meldung "Die Seite kann nicht angezeigt werden" oder "Aktion abgebrochen" erhält, kann folgendes versuchen:

  • Wenn sich die Datei auf einem Netzlaufwerk befindet, die Datei auf ein lokales Laufwerk kopieren und nochmals prüfen (nach Microsoft's Denken scheinen Netzlaufwerke "böse" CHM-Quellen zu sein)
  • Weiterhin prüfen, ob alle Rechte vorliegen, um die Datei zu öffnen
  • Eine andere CHM-Datei öffnen. Wenn's funktioniert, liegt's an der erstellten CHM-Datei, ansonsten am System
  • Die Datei auf einen anderen Rechner kopieren und dort testen. Wenn's da funktioniert, liegt's mit hoher Wahrscheinlichkeit am anderen Rechner/System, ansonsten stimmt evtl. etwas mit der Datei nicht.

Nobody is perfect. I'm sad, i'm not nobody 🙁