Microsoft Fakes x64 keine x86 und v4.5

Ich bin mit dem Microsoft Fakes-Test-Frameworks. Es gibt nicht viel herum, wie ich es verwenden müssen die shim/Muttermale Ansatz aufgrund der "legacy" - code, den ich nicht ändern kann. Es ist code von einem Anbieter mit keine Quelle, es wurde geschrieben ohne zu testen im Hinterkopf. So bin ich stecken mit 3 möglichen frameworks, TypeMock (teuer), Telerik ist JustMock (teuer) oder Microsoft Fakes. Wie wir bereits VS Ultimate, wir Entscheidung für die fakes. Da die meisten Menschen das Gefühl, Sie brauchen, um zu suggerieren neu schreiben oder ändern Sie den code in irgendeiner Weise zu unterstützen, über Schnittstellen und/oder dependency injection werde ich Ihnen von Anfang an sagen, das ist keine option.

Eines der Probleme, die ich habe ist, dass die Bibliothek, die ich bin versucht zu fälschen ist riesig und erfordert die Verwendung der 64-bit-version von fakes.exe und nicht die 32-bit - (fakes.x86.exe), es läuft in das memory limit von 32-bit-apps.

Das zweite Problem ist, dass ich kompilieren muß, die fakes Bibliothek, die mit der v4.5 Rahmen. Es ist möglich, über die Kommandozeile, allerdings ohne Papiere. Der Grund dafür ist, dass in v4.5 Sie hat die IReadOnly* Schnittstellen im System.Sammlungen.Generische und die Bibliothek, die Sie verwendet. Kompilieren mit v4, wirft eine Fehlermeldung, die Typen sind nicht gefunden, wie erwartet.

Das problem, Visual Studio immer mit der x86 version v4.0 Rahmen, und ich kann nicht einen Weg finden, um es zu überschreiben. Weiß jemand, wie man es für die Verwendung mit 64-bit und v4.5 Rahmen? Meine aktuelle Idee ist nicht zu verwenden, visual studio eingebauten Sachen und nur die Befehlszeile verwenden und manuell Verweis auf die Datei. Dann bei jedem update der dll, würden wir manuell neu erstellen Sie und aktualisieren Sie den Verweis. Diese Datei wird nicht aktualisiert sehr oft so, dass ist eine Möglichkeit.

Die Befehlszeile, die ich verwenden, um manuell generieren, die die Fälschungen Bibliothek (könnte jemand findet das nützlich ist):

"c:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\fakes\fakes.exe" <assembly> /tfv:v4.5

Den Befehl help zeigt nur, dass v2, v3.5 und v4 sind die möglichen Optionen für den tfv, aber nur zum Spaß habe ich versucht die v4.5.

Habe ich versucht zu zwingen, die Architektur auf das app x64, anstatt jede cpu, keine änderung, in der fakes.exe es lief.
Sah in den .csproj-Datei für den test, keine änderung.
Sah in den .csproj-Datei, die fakes.exe und es sagt zu v4 der Rahmen, in visual studio geöffnet, geändert, um v4.5, zusammengestellt in Ordnung. Verwendet die fakes Befehlszeile kompiliert einwandfrei.
Es gibt ein Attribut in der .fakes-Datei in das Projekt, das ermöglicht dem compiler-version definiert werden, aber die Einstellung v4.5 funktioniert immer noch nicht. Ich gehe davon aus, dass die version ändern Sie in visual studio von v4 auf v4.5 geändert, die die assembly verweist, wie gut. Mein Nächster Versuch ist zu versuchen, und ändern Sie die template-Projekt, wenn ich es finden kann.

  • Sind Sie auch sicher, dass es eine 64-bit-version von fakes.exe?
  • Ja, Sie können manuell führen Sie es mit dem Befehl, den ich zeigte. Die 32 bit ist fakes.x86.exe.
  • Ich war in der Lage, um die v4.5 arbeiten von der Einstellung des unit-test-Projekt zu 4,5 und schließen der Lösung und re-zu öffnen. Nicht sicher, warum ich hatte zu schließen, visual studio...Leider hat es damals nicht lösen 32/64 bit Problem.
  • Nur zum Spaß, habe ich beschlossen zu kopieren fakes.exe über die fakes.x86.exe nur um sicher zu gehen, könnte es die 64-bit-version. Und es lief ohne Probleme. Ich weiß nur nicht wie dieser Ansatz, wie ich jetzt brauchen würde, um laufen herum, um all die dev-Systeme und neue werden und diesen hack.
InformationsquelleAutor Edward | 2013-02-19
Schreibe einen Kommentar