Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[FAQ] Erstellung von Hilfe-Dateien (z.B. CHM) mit Hilfe von Tools
tom-essen
myCSharp.de - Experte

Avatar #avatar-2140.png


Dabei seit:
Beiträge: 1928
Herkunft: NRW

Themenstarter:

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

beantworten | zitieren | melden

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.
Attachments
Nobody is perfect. I'm sad, i'm not nobody
private Nachricht | Beiträge des Benutzers
Lars Schmitt
myCSharp.de - Experte

Avatar #avatar-2240.jpg


Dabei seit:
Beiträge: 2335
Herkunft: Witten

beantworten | zitieren | melden

moin

hast du es mal auf einen anderen rechner versucht?

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

mfg
private Nachricht | Beiträge des Benutzers
tom-essen
myCSharp.de - Experte

Avatar #avatar-2140.png


Dabei seit:
Beiträge: 1928
Herkunft: NRW

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Lars Schmitt
myCSharp.de - Experte

Avatar #avatar-2240.jpg


Dabei seit:
Beiträge: 2335
Herkunft: Witten

beantworten | zitieren | melden

dann tip ich jetzt erst rech auf versions konflikte

mfg
private Nachricht | Beiträge des Benutzers
tom-essen
myCSharp.de - Experte

Avatar #avatar-2140.png


Dabei seit:
Beiträge: 1928
Herkunft: NRW

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Lars Schmitt
myCSharp.de - Experte

Avatar #avatar-2240.jpg


Dabei seit:
Beiträge: 2335
Herkunft: Witten

beantworten | zitieren | melden

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

mfg
private Nachricht | Beiträge des Benutzers
CB.NET
myCSharp.de - Member

Avatar #avatar-2838.gif


Dabei seit:
Beiträge: 729
Herkunft: bei Berlin

beantworten | zitieren | melden

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.
Attachments
--------------------------------
DotNetGerman Bloggers
private Nachricht | Beiträge des Benutzers
BerndFfm
myCSharp.de - Team

Avatar #gvp27cjXxMEZQuCpk4WQ.jpg


Dabei seit:
Beiträge: 3737
Herkunft: Frankfurt a.M.

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
tom-essen
myCSharp.de - Experte

Avatar #avatar-2140.png


Dabei seit:
Beiträge: 1928
Herkunft: NRW

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
tom-essen
myCSharp.de - Experte

Avatar #avatar-2140.png


Dabei seit:
Beiträge: 1928
Herkunft: NRW

Themenstarter:

Lösung gefunden!!

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Lars Schmitt
myCSharp.de - Experte

Avatar #avatar-2240.jpg


Dabei seit:
Beiträge: 2335
Herkunft: Witten

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
tom-essen
myCSharp.de - Experte

Avatar #avatar-2140.png


Dabei seit:
Beiträge: 1928
Herkunft: NRW

Themenstarter:

beantworten | zitieren | melden

Hallo!

EDIT: Lösung siehe meinen vorherigen Beitrag
Nobody is perfect. I'm sad, i'm not nobody
private Nachricht | Beiträge des Benutzers
tom-essen
myCSharp.de - Experte

Avatar #avatar-2140.png


Dabei seit:
Beiträge: 1928
Herkunft: NRW

Themenstarter:

Probleme bei der Erstellung von CHM-Hilfe-Dateien aus Quellcode-Kommentaren mit Hilfe von Tools

beantworten | zitieren | melden

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
Fehler
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
Fehler
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
private Nachricht | Beiträge des Benutzers