8

Ich habe Visual Studio 2015 als Probe installiert und seitdem meine Einheit Tests, die Fälschungen verwenden nicht mehr kompilieren, nicht einmal auf VS 2013. Das Unit-Test-Projekt zielt darauf ab. netto 4.5.Fakes funktioniert nicht mehr nach der Installation von Visual Studio 2015

Msdn schlagen vor, die Ziel-Framework-Version zu ändern. Der Fehler ist verschwunden, wenn ich das Zielframework auf 4.6 ändere, aber ich kann mein Projekt nicht auf .net 4.6 aktualisieren, da jeder Entwickler sofort updaten muss.

Fehler, die ich bekomme.

Die primäre Referenz „mscorlib.4.0.0.0.Fakes“ nicht aufgelöst werden können, weil es gegen die“.NETFramework, Version = 4.6 fraemwork gebaut wurde ist . eine höhere Version als die derzeit gezielt Rahmen“.NETFramework, Version = 4.5"

ich habe auch versucht, die Fälschungen zu entfernen und sie neu, aber sie bauen nicht, bekomme ich Fehler wie folgt aus:

Der Typ oder Namespace Name 'EventDataAttribute' existiert nicht im Namespace 'System.Diagnostics.Tracing' *;

Irgendwelche Korrekturen für dieses?

+0

Bisher meine Lösung hat alle Fälschungen zu entfernen und ersetzen sie durch RhinoMocks. .. – Carra

Antwort

13

Sie können die Problemklassen wahrscheinlich entfernen. Wenn Ihr Build-Ausgabeanweisungen hat wie

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' 

Dann kann es aus mscorlib.fakes oder System.fakes entfernt werden Dateien

<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> 

Jetzt kann es als ein bisschen differenzierter sein. Um es zum Laufen zu bringen, musste ich das Einheitentestprojekt auf 4.6 zielen, um das mscorlib.4.0.0.0.Fakes .dll das erste mal zu erzeugen. Dann konnte ich es wieder auf 4.5.1 zurücksetzen. Aber die Arbeit mit der Config könnte ein bisschen Ihrer Zeit wert sein, da ich in der Lage war, ein ähnliches Problem zu umgehen.

Hier ist ein Microsoft problem Bericht, wo ich die Problemumgehung bekam.

1

Ich muss erwähnen, dass neben der Lösung von doobop geschrieben, die für mich gearbeitet, auch die folgenden Zeilen erforderlich waren:

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