2014-04-30 7 views
6

가짜를 생성하기 위해 수행해야 할 작업을 알 수 없습니다. 내 테스트 프로젝트에서 나는 위조하고 싶은 어셈블리에 대한 참조를 포함시켰다. 그것은/Fake/< 어셈블리 이름 >을 추가했습니다. 내 프로젝트에 .fakes 그리고 프로젝트를 만들었습니다. 1 톤의 경고가 있었지만 오류는 0이고 빌드가 성공적으로 완료되었습니다. 그러나 생성 된 .Fakes 어셈블리에 대한 참조를 추가하지는 않습니다.가짜 어셈블리가 생성되지 않습니다.

대부분의 경고는 열거 형에 대해 스텁 또는 심을 생성 할 수 없거나 일부 개인 클래스가 가짜 어셈블리에 표시되지 않는 것과 같은 것입니다. 어셈블리에는 실제로 Shim에 원하는 클래스가 1 개 뿐이며, Stub에 추가 할 클래스는 없습니다. 나는 아직도 스텁 또는 난에서 제외했다 심 클래스 수 없다는 오류 경고의 톤을 받고없고,하고 나는 청소하고 프로젝트를 다시

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/" 
     Diagnostic="true"> 
    <Assembly Name="[assembly name]"> 
    <StubGeneration> 
     <Clear /> 
    </StubGeneration> 
    <ShimGeneration> 
     <Clear /> 
     <Add Namespace="[namespace that the 1 class I want to shim is in]" /> 
    </ShimGeneration> 
    </Assembly> 
</Fakes> 

, 그리고 : 그래서 .fakes 파일을 편집 .fakes 파일 및 .Fakes 어셈블리가 여전히 생성되지 않습니다.

실제로 어떻게 특정 스텁을 만들고 특정 네임 스페이스에있는 클래스에 대해 shim을 만드는 것을 막을 수 있습니까? http://msdn.microsoft.com/en-us/library/hh708916.aspx의 정보가 분명히 올바르지 않습니다.

또한 Assembly 요소에서 Version 특성을 제거했지만 경고 메시지에는 네임 스페이스에 버전 번호가 포함됩니다. 그게 뭐야?

+0

클래스가 봉인되거나 mscorlib의 특정 클래스 인 경우 몇 가지 어려움이 있습니다. 이러한 것들은 위조가 불가능할 수도 있습니다. 현재 Google은 문제의 원인을 설명하기에 충분한 정보가 없습니다. – Magus

+0

어셈블리에 일부 봉인 된 클래스가 있지만 그 것에 관심이 없습니다. 심의하려고하는 수업은 공개적이며 인장되지 않습니다. 그 봉인 된 클래스를 제외하도록 .fakes 파일을 수정하려고합니다. 그냥 .fakes 파일에 무엇을 넣었는지 신경 쓰지 않는 것 같습니다. – Nick

+0

@ 닉이 답변을 찾았습니까? 나는 똑같은 문제가있다! –

답변

8

내 문제가 무엇인지 알아 냈습니다. StubGeneration과 ShimGeneration은 Assembly의 하위 요소라고 생각했지만 실제로는 그렇지 않습니다. 그들은 가짜의 아이들, 그리고 집회의 형제가되어야합니다. 내 .fakes 파일을이 파일로 변경하면 작동합니다.

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/" 
     Diagnostic="true"> 
    <Assembly Name="[assembly name]" /> 
    <StubGeneration> 
    <Clear /> 
    </StubGeneration> 
    <ShimGeneration> 
    <Clear /> 
    <Add Namespace="[namespace that the 1 class I want to shim is in]" /> 
    </ShimGeneration> 
</Fakes> 
+1

뒤에 올 것입니다. 고맙습니다 이것이 내 문제였습니다. 너무. 당신은 자신의 대답을 표시해야합니다 ... –

관련 문제