48

Noda Timeでは、SandcastleとSHFBを使用してドキュメントを生成します。次に、ドキュメントをソースリポジトリにコミットします。これは主に、最新の(および履歴の)ドキュメントを簡単に表示できるためです。

私はプロジェクトの主要な開発者ですが、2台のコンピューターを使用しています。残念ながら、両方とも同じソースに更新されていても、現時点では異なるドキュメントを作成しています。

2台のコンピューターは、私が考えることができるすべての重要な点で同じです。

  • サンドキャッスル2.7.2.0
  • SHFB 1.9.6.0
  • VS 2012 Professional(両方とも「プログラム」でバージョン11.0.50727.1を報告し、両方とも「バージョン情報」ページで「バージョン11.0.51106.01アップデート1」を報告しました)
  • .NET Framework 4.5のローカルヘルプコンテンツの最新バージョン(および他のフレームワークバージョンのローカルヘルプコンテンツはありません)

クリーンビルドを確実にするために取られたステップ:

  • SHFBキャッシュフォルダを削除しました(C:\Users\Jon\AppData\Local\EWSoftware\Sandcastle Help File Builder\Cache
  • ドキュメントが生成されるフォルダを削除しました
  • SHFBプロジェクトファイルに関連するユーザー設定ファイルを削除しました
  • VisualStudioのシンボルキャッシュを削除しました

それでも違いは残っています。特に、MSDN自体から継承されたドキュメントに限定されているようObject.Finalizeです。

バージョン1(マシン「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>

バージョン2(マシン「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>

どちらも同じMSDNドキュメントにリンクしています。これはバージョン1のように見えます(へのリンクはありませんObject)。

変更されたファイルのいくつかを見ると、変更は一貫しており、このメンバーに制限されています。

Sandcastleはどこからこのドキュメントを入手できますか?また、両方のコンピューターを同じように動作させるにはどうすればよいですか?

編集:もう1つの情報の断片-両方のマシンでキャッシュをクリーンアップしてドキュメントを再構築した後、SHFBキャッシュディレクトリに3つのファイルがあります。

  • Reflection.cacheは両方のマシンで同じサイズです
  • MsdnUrl.cacheは両方のマシンで同じサイズです
  • .NETFramework_4.0.0319_E8879A28.cacheのサイズはChubbyで13,377,733バイト、Sandyで13,337,949バイトです。

編集:重要な進歩!私は違いがおそらくどこから来ているのかを見つけました...

ファイルc:\Windows\Microsoft.NET\Framework\v2.0.50727\en\mscorlib.xml

  • チャビーでは、2011年12月12日の日付で8,005,263バイトであり、リンクされていないテキストがあります。Finalize
  • On Sandyは2009年8月31日付けの9,740,370バイトで、Finalizeリンクを含むテキストがあります

両方のマシンで、mscorlib.dllそれ自体は同じサイズ(4,550,656バイト)であり、2012年9月13日の変更日があります。

しかし、どうすればそれらを同じにすることができますか?その違いはどこから来るのですか?(サービスパック?)

編集:さて、のバージョンはc:\Windows赤いニシンでした-それはc:\Program Files (x86)\Reference Assemblies\Microsoft\Framework責任があるバージョンです。インストール間でなぜそれが異なるのかを知ることができるかどうかを確認します...

4

1 に答える 1

10

あなたの最近の編集を考慮したいくつかのアイデア。

「Beyond Compare」などのツールを使用して、両方のマシンで .Net Framework ファイルと XML ファイルを比較します (「フォルダー比較」プロファイル)。完全に確実にするために、バイナリレベルの比較を優先してください...両方のマシンがローカルである場合、非常に高速になるはずです。

Mark Russinovich の Process Monitor ( http://live.sysinternals.com/procmon.exe ) を両方のマシンで実行して、ドキュメントのビルド プロセスを実行することもできます。このようにして、どのファイルが読み込まれ、ヘルプ ファイルの構築プロセスに関与しているか、およびそれらがどこから来ているかを確認できます。システムで発生するすべてが表示されるため、多くの出力が得られます。レジストリとネットワークの監視を無効にして、ファイルの監視のみを残し、ドキュメントの構築プロセスに関係のないプロセスを除外することもできます。

私はヘルプ生成の専門家ではありませんが、テキストは XML ファイルから取得されていると思います。そのため、xml ファイルのみを表示するようにフィルターを設定することもできます。

関連するファイルを特定できる場合は、それらをあるマシンから別のマシンにコピーするだけで済みます。

于 2013-02-21T11:54:28.240 に答える