In Noda Time, generiamo la nostra documentazione utilizzando Sandcastle e SHFB. Riportiamo quindi la documentazione nel repository di origine, principalmente perché ciò semplifica la visualizzazione dei documenti più recenti (e storici).Come posso scoprire cosa sta causando differenze nei documenti generati da Sandcastle?
Sono lo sviluppatore principale del progetto, ma utilizzo due computer e, sfortunatamente, al momento stanno costruendo documentazione diversa pur essendo entrambi aggiornati alla stessa fonte.
I due computer sono gli stessi in ogni modo importante che posso pensare:
- Sandcastle 2.7.2.0
- SHFB 1.9.6.0
- VS 2012 professionisti (sia la versione 11.0.50727.1 presentate nel "Programmi", entrambi "Versione 11.0.51106.01 Aggiornamento 1" nella pagina "Informazioni")
- Ultima versione del contenuto della guida locale per .NET Framework 4.5 (e nessun contenuto della guida locale per altre versioni di framework)
misure adottate per garantire una generazione pulita:
- eliminata la cartella della cache SHFB (
C:\Users\Jon\AppData\Local\EWSoftware\Sandcastle Help File Builder\Cache
) - eliminato la cartella viene generata la documentazione in
- eliminato il file impostazioni utente relative al file di progetto SHFB
- cancellato la cache di simbolo in Visual Studio
Eppure le differenze rimangono. Sembrano essere limitati alla documentazione ereditata da MSDN stesso, in particolare Object.Finalize
.
Versione 1 (generato sulla macchina "Chubby"):
<div class="summary">Allows an object to try to free resources and perform
other cleanup operations before it is reclaimed by garbage collection.</div>
versione 2 (generato sulla macchina "Sandy"):
<div class="summary">Allows an <a
href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">
Object</a> to attempt to free resources and perform other cleanup operations
before the <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b"
target="_blank">Object</a> is reclaimed by garbage collection.</div>
Sia collegamento alla stessa documentazione MSDN, che sembra come la versione 1 (nessun collegamento a Object
).
Guardando alcuni dei file modificati, la modifica è coerente e limitata a questo membro.
Da dove potrebbe essere ottenuta questa documentazione da Sandcastle e in che modo è possibile che entrambi i computer si comportino allo stesso modo?
EDIT: Un altro frammento di informazioni - dopo la pulizia della cache e ricostruire la documentazione su entrambe le macchine, ci sono tre file nella directory SHFB cache:
- Reflection.cache ha le stesse dimensioni su entrambe le macchine
- MsdnUrl.cache ha la stessa dimensione su entrambe le macchine
- .NETFramework_4.0.0319_E8879A28.la cache ha dimensioni 13.377.733 byte su Chubby e 13.337.949 byte su Sandy
EDIT: Progressi significativi! Ho trovato in cui la differenza è probabilmente provenienti da ...
Il file c:\Windows\Microsoft.NET\Framework\v2.0.50727\en\mscorlib.xml
:
- Su Chubby è 8,005,263 byte con una data del 12 dicembre 2011, e ha il testo non collegato per
Finalize
- su Sandy è 9,740,370 byte con una data del 31 agosto 2009 e ha il testo per
Finalize
che include i collegamenti
su entrambe le macchine, mscorlib.dll
sé è la stessa dimensione (4.550 , 656 byte) e ha una data modificata del 13 settembre 2012.
Ma come posso far sì che siano uguali? Da dove viene questa differenza? (Service pack?)
EDIT: Va bene, la versione in c:\Windows
era un'aringa rossa - è la versione in c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework
che è la colpa. Vado a vedere se riesco a scoprire il motivo che potrebbe essere diverso tra le installazioni ...
siete sicuramente sicuro che non ci sia un'altra versione nel tuo percorso dell'eseguibile SC? Hmm, c'è un comando "che" di Unix che è utilizzabile per Windows, forse. – larsw
@larsw: C'è un solo file SandcastleHelpFileBuilder.targets su ciascuna macchina :( –
La differenza potrebbe essere dovuta a qualsiasi sistema/aggiornamento/patch di Windows installato su una macchina, ma non sull'altra? versioni del framework .NET sui due macchine in modo identico – stakx