2016-04-02 33 views
0

我試圖用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。這些解決方案都沒有奏效。有誰知道我還能做什麼?

回答

0

您可能從其對應的NuGet包中安裝了Microsoft.Expression.Encoder。

你也很可能沒有把你的軟件包保存在源代碼管理中(它應該是這樣)。

因此,當TC檢出代碼時,節點包缺失,需要使用NuGet安裝程序進行構建,這會在TC嘗試構建代碼之前恢復您的包。

Teamcity NuGet Installer

+0

不,實際上我是從本[公司網址](https://www.microsoft.com/en-us/download/details.aspx?id=18974)安裝了它,然後我手動添加C:\ Program Files(x86)\ Microsoft Expression \ Encoder 4 \ SDK文件夾中的可用庫添加到我的項目中。 在閱讀你的答案後,我嘗試了NuGet,但我遇到了同樣的問題。 –

+0

然後,我會嘗試查看我的解決方案文件yourSolution.sln和yourProject.proj是否已經過檢查。主要是項目文件,因爲它將包含對dll的引用,並且您必須檢查dll本身。我們這樣做了一些DevExpress庫 –

+0

我檢查了一切似乎很好。我認爲這是因爲libray的架構,我似乎無法通過TeamCity中的命令行「對齊」它們。 –