2013-02-16 12 views
46

Noda Time에서는 Sandcastle 및 SHFB을 사용하여 설명서를 생성합니다. 우리는 소스 저장소로 문서를 다시 커밋합니다 - 주로 최신 (그리고 역사적인) 문서를 쉽게 볼 수 있기 때문입니다.생성 된 Sandcastle 문서의 차이점을 파악하는 방법은 무엇입니까?

저는 프로젝트의 주 개발자이지만 두 대의 컴퓨터를 사용합니다. 불행히도 현재는 동일한 소스로 업데이트되었지만 서로 다른 문서를 작성하고 있습니다.

  • 샌드캐슬 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 프로젝트 파일에 관련된 사용자 설정 파일을 삭제
  • 에 문서가 생성 된 폴더를 삭제함 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 바이트입니다.

EDIT : 중요한 발전! 나는

파일 c:\Windows\Microsoft.NET\Framework\v2.0.50727\en\mscorlib.xml ... 차이가 아마 어디에서 오는 발견했습니다 풍만에

  • 는 12 일 2011 년 12 월 날짜와 8005263 바이트이며, Finalize에 대한 연결되지 않은 텍스트가 샌디에
  • 월 31 2009 년 8 월 날짜와 9740370 바이트이며, (4550 자체는 같은 크기의 링크를 두 시스템에

, mscorlib.dll을 포함 Finalize의 텍스트가 , 656 bytes) 2012 년 9 월 13 일 수정 된 날짜가 있습니다.

하지만 어떻게 동일하게 만들 수 있습니까? 그 차이는 어디서 오는 것입니까? (서비스 팩?)

편집 : 좋아요, c:\Windows의 버전은 빨간 청어입니다.이 버전은 c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework입니다. 나는 그것이 설치 사이에 다른 이유가 무엇인지 알 수 있는지 알게 될 것입니다 ...

+1

SC 실행 파일의 경로에 다른 버전이없는 것이 확실합니다. 흠, 유닉스 "어느"명령이 Windows에서 사용할 수 있는지, 어쩌면. – larsw

+2

@larsw : 각 컴퓨터에 단 하나의 SandcastleHelpFileBuilder.targets 파일이 있습니다. ( –

+1

차이점은 한 컴퓨터에만 설치되어 있지만 다른 컴퓨터에는 설치되지 않은 Windows 시스템 /.NET 업데이트/패치 때문일 수 있습니까? 두 컴퓨터의 .NET Framework 버전은 동일하게 – stakx

답변

10

최근 편집을 고려한 몇 가지 아이디어가 있습니다 만, 어둠 속에서 조금 쏜다는 것에 동의합니다 ...

"Beyond Compare"와 같은 도구를 사용하여 .NET Framework 파일과 XML 파일을 두 시스템에서 비교할 수 있습니다 ("폴더 비교"프로필). 바이너리 레벨 비교를 통해 완벽하게 확신 할 수 있습니다. 두 머신이 모두 로컬 인 경우 매우 빨라야합니다.

두 컴퓨터에서 Mark Russinovich의 프로세스 모니터 (http://live.sysinternals.com/procmon.exe)를 실행하고 문서 작성 프로세스를 실행 해 볼 수도 있습니다. 이 방법을 사용하면 도움말 파일 작성 프로세스에서 어떤 파일을 읽고 관련 파일을 볼 수 있으며 어디에서 파일을 가져올 수 있는지 알 수 있습니다. 시스템에서 발생하는 모든 내용을 표시하므로 많은 출력이 발생합니다. 레지스트리 모니터링 및 네트워크 모니터링을 비활성화하고 파일 모니터링 만 남기고 문서 작성 프로세스와 관련이없는 프로세스는 제외 할 수 있습니다.

저는 도움 세대 전문가는 아니지만 텍스트가 XML 파일에서 비롯된 것이라고 생각하므로 xml 파일 만 표시하는 필터를 넣을 수도 있습니다.

관련된 파일을 식별 할 수 있으면 한 컴퓨터에서 다른 컴퓨터로 파일을 복사하면됩니다.

+0

) 이제는 관련 파일을 찾았습니다. 상속 된 문서를 제거하여 임시 픽스가 있지만 그 차이점이 왜 존재하는지 알고 싶습니다. –

+0

다른 어셈블리의 버전 번호를 알고 있습니까? Google 사이트 : support.microsoft.com을 사용하여 버전 번호를 찾는 경우 해당 버전을 언급하는 KB가 있습니까? 예를 들어 전제 조건으로 핫픽스를 설치 한 다른 응용 프로그램 중 하나에 설치 한 Windows Update주기에서 릴리스 된 핫픽스 일 수 있습니까? –

+0

죄송합니다. no - 참조 어셈블리 디렉토리에있는 XML 파일입니다. Microsoft에서 어떤 일이 일어나고 있는지 (두 가지 버전이있는 이유)를 조사하는 사람들이 있습니다. –