ユニットテストを作成しました。テスト対象のコードは、Microsoft.Office.Interop.Excel.dllを参照しています。Microsoft.Office.Interop dllでのユニットテストがビルドサーバで失敗する
テストは自分のマシンで正常に実行されますが、ビルドサーバーでは失敗します。これは、Excelアプリケーションがインスタンス化された行に失敗します。
var application = new Application { Visible = Visible };
エラーがある:これは私が私のビルドサーバー上で再配布可能なプライマリ相互運用機能アセンブリをインストールする必要が
System.Runtime.InteropServices.COMException:
Retrieving the COM class factory for component with CLSID
{00024500-0000-0000-C000-000000000046} failed due to the following error:
80040154 Class not registered
ということですか?もしそうなら、ビルドサーバーにExcelをインストールする必要がありますか?
編集: Microsoft.Office.Interop.Excel.dllは私のソリューションに含まれており、そこから参照されています。
テストが存在するアセンブリを必要とする場合には、明らかにそれはテストが実行されているマシン上にある必要があります。それとも、他に何かを求めていますか?そのマシンに単一のDLLを登録するだけで、Excelをインストールする必要はありません。そのDLLが[dependency walker](http://www.dependencywalker.com/)との依存関係をチェックしてください。 –
これを行うには、ビルドサーバーにOfficeをインストールする必要があります。 – vcsjones
@Peterありがとう、私は解明するために私の答えを編集しました。私はすでにdllを登録しようとしましたが、「DllRegisterServerエントリポイントが見つかりませんでした。このファイルはこのユーザーに登録できます」とこの男のように:http://serverfault.com/questions/59431/regsvr32-error-dllregisterserver-entry-point -was-not-found –