Я пытаюсь выполнить выполнение тестов Selenium с помощью Microsoft Expression Encoder. Я нашел много ответов о проблеме, с которой я сейчас сталкиваюсь, но никто из них не решил ее. Итак, у меня есть метод, который запускает процесс записи видео. Это так же просто, какMicrosoft Expression Encoder и Selenium + TeamCity
scj = new ScreenCaptureJob();
scj.OutputScreenCaptureFileName = logPath + "\\" + fileName + ".wmv";
scj.ScreenCaptureVideoProfile.FrameRate = 25;
scj.CaptureMouseCursor = true;
scj.Start();
Когда я запускаю его из Visual Studio 2015, он отлично работает. Но когда я запускаю его из TeamCity в одном из наших строительных агентов, я получаю следующее сообщение:
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
Теперь, для того, что я перечитал некоторые форумы, это связанно с моим выбором архитектуры. В TeamCity на этапе сборки, который компилирует код, выбрана платформа «Любой процессор», тогда как в Visual Studio выбрана «Смешанная платформа».
Я уже пробовал настраивать все на архитектуру x86 в TeamCity, заставлять NUnit 3 работать как 32-битный процесс, а также изменять целевую архитекторию моего проекта. Ни одно из этих решений не сработало. Кто-нибудь знает, что еще я могу сделать?
Нет, на самом деле я установил его от этого [сайт] (https://www.microsoft.com/en-us/download/details.aspx?id=18974), а затем я вручную добавил библиотеки, доступные в папке C: \ Program Files (x86) \ Microsoft Expression \ Encoder 4 \ SDK для моего проекта. После прочтения вашего ответа я попытался с NuGet, но у меня такая же проблема. –
Затем я попытаюсь проверить, проверяется ли файл решения yourSolution.sln и yourProject.proj. В основном файл проекта, так как он будет содержать ссылку на DLL, и вы ДОЛЖНЫ проверить в самой dll. Мы делаем это для некоторых библиотек DevExpress –
Я проверил, и все кажется прекрасным. Я думаю, что это потому, что архитектура libray, я просто не могу «выровнять» их по командной строке в TeamCity. –