2016-04-02 8 views
0

Ich versuche, meine Selenium-Testausführung mit Microsoft Expression Encoder aufzuzeichnen. Ich habe viele Antworten auf das Problem gefunden, mit dem ich derzeit konfrontiert bin, aber keiner von ihnen hat es wirklich gelöst. Also, ich habe eine Methode, die den Videoaufnahmeprozess startet. Es geht so einfach wieMicrosoft Expression Encoder und Selenium + TeamCity

 scj = new ScreenCaptureJob(); 
     scj.OutputScreenCaptureFileName = logPath + "\\" + fileName + ".wmv"; 
     scj.ScreenCaptureVideoProfile.FrameRate = 25; 
     scj.CaptureMouseCursor = true; 
     scj.Start(); 

Wenn ich es von Visual Studio 2015 ausführen funktioniert es einwandfrei. Aber wenn ich es von Teamcity in einem unserer Build-Agenten ausgeführt werden, erhalte ich die folgende Meldung:

OneTimeSetUp: System.BadImageFormatException: Could not load file or assembly 
'Microsoft.Expression.Encoder, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 
or one of its dependencies. An attempt was made to load a program with an incorrect format 

Nun, für das, was ich habe einige Foren gelesen über, dies zu meiner Architektur Auswahl zusammenhängt. In TeamCity hat der Build-Schritt, der den Code kompiliert, die Plattform "Any CPU" ausgewählt, während in Visual Studio "Mixed Platforms" ausgewählt ist.

Ich habe bereits versucht, alles auf x86-Architektur in TeamCity einzustellen, erzwinge NUnit 3 als 32-Bit-Prozess auszuführen und auch die Zielarchitektur meines Projekts zu ändern. Keine dieser Lösungen hat funktioniert. Hat jemand eine Vorstellung davon, was ich noch tun könnte?

Antwort

0

Sie haben wahrscheinlich Microsoft.Expression.Encoder aus dem entsprechenden NuGet-Paket installiert.

Sie behalten Ihre Pakete wahrscheinlich auch nicht in der Quellcodeverwaltung (wie es sein sollte).

Aus diesem Grund, wenn TC den Code auscheckt, fehlen die Knotenpakete, was einen Build-Schritt mit dem NuGet Installer erfordert, der Ihre Pakete wiederherstellt, bevor TC versucht, den Code zu erstellen.

Teamcity NuGet Installer

+0

Nein, eigentlich habe ich installiert es von dieser [Webseite] (https://www.microsoft.com/en-us/download/details.aspx?id=18974) und dann habe ich manuell die Bibliotheken, die im Ordner C: \ Programme (x86) \ Microsoft Expression \ Encoder 4 \ SDK für mein Projekt verfügbar sind. Nach dem Lesen Ihrer Antwort habe ich mit NuGet versucht, aber ich habe das gleiche Problem. –

+0

Dann würde ich versuchen zu sehen, ob meine Lösungsdatei yourSolution.sln und yourProject.proj überprüft werden. Hauptsächlich die Projektdatei, da sie den Verweis auf die DLL enthält, und Sie müssen die DLL selbst einchecken. Wir machen das für einige DevExpress-Bibliotheken –

+0

ich überprüft und alles scheint in Ordnung. Ich denke, es ist, weil die Architektur der Bibliothek, ich kann einfach nicht scheinen, sie über die Befehlszeile in TeamCity "auszurichten". –