在野田時間,我們使用Sandcastle和SHFB生成我們的文檔。然後我們將文檔提交回源代碼庫 - 主要是因爲這使得查看最新(和歷史)文檔變得容易。如何找出導致Sandcastle文檔生成差異的原因?
我是這個項目的主要開發人員,但我使用了兩臺電腦 - 不幸的是,目前他們正在構建不同的文檔,即使它們都更新到同一個源文件。
兩臺計算機是我能想到的每一個重要的方式是相同的:
- 沙堡2.7.2.0
- SHFB 1.9.6.0
- VS 2012專業版(兩者上報的版本11.0.50727.1在「程序」,包括「關於」頁面中的「版本11.0.51106.01更新1」)
- .NET Framework 4.5的本地幫助內容的最新版本(其他框架版本沒有本地幫助內容)
措施,確保乾淨的構建:
- 刪除
- 刪除生成的文件的文件夾爲
- 刪除相關SHFB項目文件的用戶設置文件SHFB緩存文件夾(
C:\Users\Jon\AppData\Local\EWSoftware\Sandcastle Help File Builder\Cache
) - 刪除Visual Studio中的符號緩存
仍然分歧依然存在。它們似乎僅限於從MSDN本身繼承的文檔,特別是Object.Finalize
。
版本1(機 「丘比」 上生成的):
<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版(機 「桑迪」 上生成的):
<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從哪裏得到這個文檔,我怎樣才能使兩臺計算機的行爲方式相同?
編輯:一種信息多種片段 - 清除緩存,並在兩臺機器上重建文檔後,有三個文件SHFB緩存目錄:
- Reflection.cache有兩臺機器相同的大小
- MsdnUrl.cache在兩臺機器上具有相同的大小
- .NETFramework_4.0.0319_E8879A28。緩存在Chubby上的大小爲13,377,733字節,在Sandy上爲13,337,949字節
編輯:顯着的進展!我發現其中的差異可能是來自哪裏...
文件c:\Windows\Microsoft.NET\Framework\v2.0.50727\en\mscorlib.xml
:
- 在小胖是8005263個字節,2011年12月12日的日期,並具有
Finalize
非鏈接的文本 - 在桑迪是9740370個字節,2009年8月31日的日期,並具有
Finalize
文本,其中包括鏈接
在兩臺機器上,mscorlib.dll
本身是相同的尺寸(4,550 ,656個字節),並有9月13日2012年
但我怎麼可以讓他們相同的修改日期?這種差異從哪裏來? (Service packs?)
編輯:好的,在c:\Windows
版本是一個紅色的鯡魚 - 它是在c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework
這是怪罪的版本。我要看看我能不能找出原因,可能是設備之間的不同...
你肯定確定在SC可執行文件的路徑中沒有另一個版本?嗯,有沒有可用於Windows的Unix「which」命令? – larsw 2013-02-16 19:33:31
@larsw:這裏只有一個SandcastleHelpFileBuilder.targets每臺機器:( – 2013-02-16 19:39:03
可能的差別是對文件,因爲這是安裝一臺機器上的任何Windows系統/.NET升級/補丁,但不是在其他你安裝所有的禮物嗎?兩臺機器上的.NET框架版本以相同的方式? – stakx 2013-02-16 20:57:53