2014-04-30 17 views
6

Nie mogę określić, co muszę zrobić, aby wygenerować fałszywe pliki. W moim projekcie testowym zamieściłem odniesienie do zgromadzenia, które chcę sfałszować. Dodałem/Fakes/< nazwa zespołu >. Podrabiam mój projekt i zbudowałem projekt. Było mnóstwo ostrzeżeń, ale jest 0 błędów i kompilacja zakończyła się pomyślnie. Ale nie dodaje żadnego odniesienia do wygenerowanego zestawu .Fakes.Zespół fałszujący nie generuje

Większość ostrzeżeń to takie rzeczy, które nie mogą generować kodów pośredniczących lub podkładek dla wyliczenia, a niektóre prywatne klasy nie są widoczne dla podróbek. W zespole jest tylko jedna klasa, którą chcę Shim, i nic, co chcę skasować. Więc edytowany plik .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> 
    </Assembly> 
</Fakes> 

czyściłem i przebudowany projekt, a ja wciąż się mnóstwo ostrzeżeń, i nie ma błędów, że nie może skrótową lub klasy podkładka że mam wykluczone w .fakes, a zestaw .Fakes nadal nie jest generowany.

Jak właściwie mogę przestać tworzyć progi i tworzyć podkładki tylko dla klas, które znajdują się w określonym obszarze nazw? Informacje z http://msdn.microsoft.com/en-us/library/hh708916.aspx są najwyraźniej nieprawidłowe.

Usunąłem również atrybut Version z elementu Assembly, ale ostrzeżenia, które otrzymuję nadal zawierają numer wersji w przestrzeni nazw. Co z tym?

+0

Zauważ, że są pewne trudności, jeśli zajęcia są zapieczętowane lub niektóre klasy są z mscorlib. Nie można ich sfałszować. Obecnie nie mamy wystarczających informacji, aby wyjaśnić przyczynę problemu. – Magus

+0

W zgromadzeniu jest kilka zapieczętowanych klas, ale nie jestem nimi zainteresowany. Klasa, którą próbuję podarować, jest publiczna, a nie zapieczętowana. Próbuję zmodyfikować plik .fakes, aby wykluczyć te zapieczętowane klasy. Po prostu nie obchodzi mnie, co umieszczę w pliku .fakes. – Nick

+0

@Nick znalazłeś odpowiedź? Mam dokładnie ten sam problem! –

Odpowiedz

8

Dowiedziałem się, jaki jest mój problem. Myślałem, że StubGeneration i ShimGeneration miały być elementami dzieci Zgromadzenia, ale tak nie jest. Mają być dziećmi podróbek i rodzeństwem Zgromadzenia. Po zmianie pliku .fakes na to działa:

<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

Dzięki to był mój problem także. Powinieneś oznaczyć własną odpowiedź ... –

Powiązane problemy