我試圖用Microsoft Expression Encoder記錄我的Selenium測試執行。我發現了很多關於我目前面臨的問題的答案,但他們都沒有真正解決它。所以,我有一個方法開始錄像過程。它很簡單微軟表達編碼器和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中,編譯代碼的構建步驟選擇了「任何CPU」平臺,而在Visual Studio中,選擇了「混合平臺」。
我已經嘗試在TeamCity中將所有內容都設置爲x86架構,強制NUnit 3以32位進程的方式運行,並且還更改了我的項目的目標archicteture。這些解決方案都沒有奏效。有誰知道我還能做什麼?
不,實際上我是從本[公司網址](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中的命令行「對齊」它們。 –