現在、Microsoft Access Database Engine 2010の使用に大きな問題があります。エンジンは64ビットおよび32ビットの形式で提供されますが、これは優れています。ただし、ホストプロセスが常に32ビットである場合は、常に32ビットバージョンをインストールする必要があるようです。できます、これができます。
当社のソフトウェアは、32ビットの多くのレガシーコンポーネントを処理し、その多くは32ビットアセンブリを生成するVB6コードにあります。そのため、ドライバーも32ビットとしてインストールする必要があると想定しています。実際、32ビットドライバーを64ビットマシンにインストールし、32ビットアプリケーションを実行すると、正しく動作します。
ただし、Office 2010 64ビットがシステムにインストールされると、問題が始まります。私を信頼してください。64ビットOfficeはほとんど不要であり、役に立たないことをユーザーに教育しようとしました。コンピューターが64ビットバージョンがインストールされたアセンブリラインから外れると、ソフトウェアが何かを壊したときにサポートリクエストに対応できなくなります。 64ビットのOfficeがインストールを中断するか、インストールがOfficeのバージョンを中断しますが、どちらの方法も適切ではありません。さらなる問題は、非レガシーソフトウェアが64ビットドライバーをインストールすることがあり(必要に応じて)、2つのバージョンが合理的な方法で共存しないことです。ソフトウェアが壊れるか、ソフトウェアが壊れます。
だから、32ビットドライバを64ビットインストールと共存させる方法を見つけた人はいますか? /passive
フラグを使用してインストールすると、2つをインストールでき、インストーラーはパッシブを使用します。両方がインストールされていますが、システムにインストールされると、ソフトウェアが動作しなくなるか、Officeがインストールを継続的に修復します。この作業を行うための合理的な方法はありますか?
私は自分の質問に答えるのは嫌いですが、実際に機能する解決策を見つけました(サービス間でソケット通信を使用すると問題が解決する場合がありますが、さらに問題が発生します)。データベースはレガシーであるため、接続文字列にMicrosoft.ACE.OLEDB.12.0
が必要でした。これはOffice 2007(およびMSDE 2007)にも含まれていたことがわかりました。Office2007では、32ビットバージョンしか利用できません。そのため、MSDE 2010 32ビットをインストールする代わりに、 MSDE 2007をインストール になり、正常に機能します。他のアプリケーションは64ビットMSDE 2010(または64ビットOffice 2010)をインストールでき、アプリケーションと競合しません。
これまでのところ、これはすべてのWindows OS環境に適したソリューションであると思われます。
32ビットMS Officeバージョンがインストールされたシステムに再配布可能なMicrosoft Access Database Engine 2010の64ビットバージョンをインストールするための回避策は次のとおりです。
これで、「再構成」の問題なしに32ビットMS Officeアプリケーションを開始できます。 MS Officeの64ビットバージョンがインストールされている場合、「mso.dll」レジストリ値は既に存在することに注意してください。この場合、値を削除したり、名前を変更したりしないでください。
また、「/ passive」コマンドラインパラメータを使用したくない場合は、AceRedist.msiファイルを編集してMS Officeアーキテクチャチェックを削除できます。
このファイルを使用して、Microsoft Officeの「競合する」バージョンがインストールされているシステムにMicrosoft Access Database Engine 2010再頒布可能パッケージをインストールできるようになりました(たとえば、32ビットMS Officeバージョンのシステム上の64ビットバージョン)上記の「mso.dll」レジストリ値(必要な場合)。
「Office 16 Click-to-Run拡張機能コンポーネント」を削除するように指定した、より具体的なエラーメッセージがありました
2007バージョンをインストールします。使用しているOfficeのバージョンとは反対のバージョンをインストールすると、動作させることができるようです。
http://www.Microsoft.com/en-us/download/details.aspx?id=23734
@Peter Coppinsへの同様のアプローチが答えます。これは少し簡単で、Orcaユーティリティを使用する必要がないと思います。
「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths」レジストリキーを確認し、値「mso.dll」が存在しないことを確認します。存在する場合、Office 64ビットがインストールされているようで、この回避策は必要ありません。
Microsoft Access Database Engine 2010 Redistributable をダウンロードします。
コマンドラインから次を実行します:AccessDatabaseEngine_x64.exe/passive
(注:このインストーラーはサイレントにクラッシュまたは失敗したため、コンポーネントを解凍して実行しました:AceRedist.msi/passiveおよびそれは正常にインストールされました。Windows10の問題かもしれません。)
ソース: 2ビットMicrosoft Officeと共に64ビットMicrosoftデータベースドライバーをインストールする方法
Microsoft Access Database Engine 2010の両方のバージョンが共存できない場合、唯一の解決策はMicrosoftに不満を言うことです。32ビットアプリでこの64ビットバージョンを直接読み込むことは不可能であり、実行できるサービスはパイプまたはネットワークソケットを介して別の32ビットサービスまたはアプリケーションと通信する64ビットですが、かなりの労力が必要になる場合があります。