Documentation 我如何才能找到什么';是什么导致生成的Sandcastle文档存在差异?
在野田佳彦,我们使用Sandcastle和生成文档。然后,我们将文档提交回源存储库——主要是因为这样可以方便地查看最新(和历史)文档 我是该项目的主要开发人员,但我使用两台计算机——不幸的是,目前它们正在构建不同的文档,尽管它们都更新到了相同的源 这两台计算机在我能想到的所有重要方面都是一样的:Documentation 我如何才能找到什么';是什么导致生成的Sandcastle文档存在差异?,documentation,sandcastle,finalize,shfb,Documentation,Sandcastle,Finalize,Shfb,在野田佳彦,我们使用Sandcastle和生成文档。然后,我们将文档提交回源存储库——主要是因为这样可以方便地查看最新(和历史)文档 我是该项目的主要开发人员,但我使用两台计算机——不幸的是,目前它们正在构建不同的文档,尽管它们都更新到了相同的源 这两台计算机在我能想到的所有重要方面都是一样的: 沙堡2.7.2.0 SHFB 1.9.6.0 VS 2012 Professional(在“程序”中报告了11.0.50727.1版,在“关于”页面中报告了11.0.51106.01版更新1版) .N
- 沙堡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本地帮助内容的最新版本(其他Framework版本没有本地帮助内容)
- 删除了SHFB缓存文件夹(
)C:\Users\Jon\AppData\Local\EWSoftware\Sandcastle-Help-File-Builder\cache
- 已删除生成文档的文件夹
- 已删除与SHFB项目文件相关的用户设置文件
- 已删除Visual Studio中的符号缓存
允许对象尝试释放资源并执行
垃圾回收回收之前的其他清理操作。
版本2(在机器“Sandy”上生成):
允许尝试释放资源并执行其他清理操作
在垃圾回收回收之前。
两者都链接到相同的MSDN文档,看起来像版本1(没有链接到对象
)
查看一些更改的文件,更改是一致的,并且仅限于此成员
Sandcastle从何处获取此文档,如何使两台计算机的行为相同
编辑:另一个信息片段-在两台机器上清理缓存并重建文档后,SHFB缓存目录中有三个文件:
- Reflection.cache在两台计算机上的大小相同
- MsdnUrl.cache在两台计算机上的大小相同
- .NETFramework_4.0.0319_E8879A28.cache在Chubby上的大小为133777733字节,在Sandy上的大小为13337949字节
c:\Windows\Microsoft.NET\Framework\v2.0.50727\en\mscorlib.xml
:
- Chubby上的是8005263字节,日期为2011年12月12日,并且具有用于
Finalize
- Sandy上的文本为9740370字节,日期为2009年8月31日,文本为
,其中包含链接Finalize
mscorlib.dll
本身大小相同(4550656字节),修改日期为2012年9月13日
但是我怎样才能让它们保持一致呢?这种差异从何而来?(服务包?)
编辑:好的,
c:\Windows
中的版本是一个令人费解的问题-应该归咎于c:\ProgramFiles(x86)\Reference Assembly\Microsoft\Framework
中的版本。我将看看我是否能找出安装之间可能存在差异的原因…考虑到您最近的编辑,我有几个想法,尽管我同意这有点像在黑暗中拍摄
我将使用类似“Beyond Compare”的工具来比较两台机器上的.Net Framework文件和XML文件(“文件夹比较”配置文件)。
支持二进制级别的比较,以完全确定。。。如果您的两台机器都是本地的,那么速度应该非常快
您还可以尝试在这两台机器上运行Mark Russinovich的Process Monitor(),并运行文档构建过程。
通过这种方式,您将看到在帮助文件构建过程中从哪些文件读取并涉及哪些文件,以及这些文件的来源。。。
您将获得大量输出,因为它将显示系统中发生的一切;您可能希望禁用注册表和网络监视,只保留文件监视,并排除与文档生成过程无关的任何进程
我不是帮助生成专家,但我认为文本来自XML文件,因此您可能希望在仅显示XML文件时设置过滤器
如果您可以识别所涉及的文件,那么您可能只需要将它们从一台机器复制到另一台机器。您确定SC可执行文件路径中没有其他版本吗?嗯,是否有一个Unix“which”命令可用于Windows,也许。@larsw:每台计算机上只有一个sandcastlehlefilebuilder.targets文件:(差异可能是由于一台计算机上安装了任何Windows system/.NET update/修补程序,而另一台计算机上没有安装这些修补程序造成的吗?您是否以相同的方式在这两台计算机上安装了所有现有的.NET framework版本?@stakx:这两台计算机是“最近”安装的(2012年底)这两个版本都是Windows Update的最新版本…但这并不完全相同,当然…@larsw您可以使用Windows cmd行中的
where
来查找(默认情况下)可检查项位于路径
env变量上。我现在找到了涉及的文件-肯定是引用程序集。我通过删除继承的文档得到了一个临时修复,但我也想知道为什么会存在这些差异。是否有不同程序集的版本号?如果查找版本号s正在使用google站点:support.microsoft.com您是否发现任何KB提到了它们?可能是Windows更新周期之外发布的修补程序以某种方式降落在您的一台计算机上(另一个安装了修补程序的应用程序)
<div class="summary">Allows an object to try to free resources and perform
other cleanup operations before it is reclaimed by garbage collection.</div>
<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>