8

Zainstalowałem Visual Studio 2015 jako próbkę i od tego czasu moje testy jednostkowe, które wykorzystują podróbki, nie będą już działać, nawet w VS 2013. Cele projektu testów jednostkowych. netto 4.5.Fałki przestały działać po zainstalowaniu Visual Studio 2015

Msdn sugerują zmianę docelowej wersji szkieletu. Błąd zniknął, jeśli zmienię docelową strukturę na 4.6, ale nie mogę zaktualizować mojego projektu do wersji .net 4.6, ponieważ każdy programista musi zaktualizować się natychmiast.

Błąd, który mam.

Podstawowym referencyjnych „mscorlib.4.0.0.0.Fakes” nie mógł zostać rozwiązany ponieważ został zbudowany przed”.NETFramework, Version = 4,6 fraemwork Jest a. wyższy niż wersja aktualnie ukierunkowany ramach”.NETFramework, Version = 4.5"

próbowałem już także usunąć podróbek i odtworzyć je, ale nie budować, pojawiają się błędy tak:

Typ lub przestrzeń nazw "EventDataAttribute" nie istnieje w przestrzeni nazw "System.Diagnostics.Tracing" *;

Jakieś poprawki do tego?

+0

Dotychczas moje rozwiązanie było usunąć wszystkie podróbki i zastąpić je RhinoMocks. .. – Carra

Odpowiedz

13

Prawdopodobnie można usunąć klasy problemów. Jeśli wyjście build ma stwierdzenia typu

warning CS0115: 'System.Security.Cryptography.X509Certificates.Fakes.StubX509Certificate2.Dispose(bool)': no suitable method found to override 
warning CS0234: The type or namespace name 'EventDataAttribute' does not exist in the namespace 'System.Diagnostics.Tracing' 

Wtedy może on zostać usunięty z mscorlib.fakes lub System.fakes plików

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/"> 
    <Assembly Name="mscorlib" Version="4.0.0.0"/> 
    <StubGeneration> 
    <Remove FullName="System.Diagnostics.Tracing"/> 
    <Remove FullName="System.Text.Encoding"/> 
    <Remove FullName="System.Security.Cryptography" /> 
    </StubGeneration> 
</Fakes> 

Teraz może to być nieco bardziej złożony niż to. Aby go uruchomić, musiałem skierować projekt testu jednostkowego na 4.6, aby wygenerować plik mscorlib.4.0.0.0.Fakes .dll za pierwszym razem. Potem mógłbym wrócić do 4.5.1. Ale praca z konfiguracją może być warta trochę twojego czasu, ponieważ mogłem obejść podobny problem.

Oto raport Microsoft problem, w którym otrzymałem obejście.

1

muszę wspomnieć, że oprócz rozwiązania zamieszczonych przez doobop, który pracował dla mnie, również wymagane były następujące linie:

<Remove FullName="System.FormattableString" /> 
<Remove FullName="System.IO" />