数年前、MicrosoftACEとJETOLEDBを使用してExcelスプレッドシートをCSVファイルに変換するC#.NETプログラムを作成しました。最近、Windows Server2008x64サーバーにアップグレードしました。JETが非推奨になったため、そのメソッドは機能しなくなりました。元々、Excel 2003の.xlsファイルはJETで処理され、.xlsxExcel2007ファイルはACEで処理されていました。両方にACEを使用するように接続文字列を変更しました。
これで、コマンドプロンプトからプログラムを正常に実行できます。ただし、自動化ソフトウェア(Start-> Runメソッドと同様のプログラムを実行しているようです)を使用すると、MicrosoftDataAccessコンポーネントがインストールされていないというエラーが表示されます。これらを調査したところ、32ビットシステムでのみ動作し、WindowsServer2000以降はサポートされていないようです。
何か案は?最新のベータ版x64ACEOLEDBドライバーがインストールされています。プログラムは手動で正常に実行されます。また、x86のターゲットプラットフォームでプログラムをコンパイルしてみました。また、自動化ソフトウェアが使用するWindowsアカウントを使用して、プログラムを手動で正常に実行しました。