0

Microsoft Expression Encoder を使用して Selenium テストの実行を記録しようとしています。現在直面している問題について多くの回答を見つけましたが、実際に解決したものはありません。そのため、ビデオ録画プロセスを開始するメソッドがあります。それは次のように簡単です

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

Visual Studio 2015 から実行すると、問題なく動作します。しかし、ビルド エージェントの 1 つで 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 ビット プロセスとして実行し、プロジェクトのターゲット アーキテクチャを変更しようとしました。これらの解決策はどれも機能していません。他に何ができるか考えている人はいますか?

4

1 に答える 1

0

対応する NuGet パッケージから Microsoft.Expression.Encoder をインストールした可能性があります。

また、パッケージをソース管理に保持していない可能性が最も高いです (そうあるべきです)。

そのため、TC がコードをチェックアウトするときに、ノード パッケージが見つからないため、NuGet インストーラーを使用したビルド手順が必要になります。これにより、TC がコードのビルドを試みる前にパッケージが復元されます。

Teamcity NuGet インストーラー

于 2016-04-04T17:33:29.193 に答える