web-dev-qa-db-ja.com

MS Access DBエンジン(32ビット)とOffice 64ビット

現在、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がインストールを継続的に修復します。この作業を行うための合理的な方法はありますか?

35
drharris

私は自分の質問に答えるのは嫌いですが、実際に機能する解決策を見つけました(サービス間でソケット通信を使用すると問題が解決する場合がありますが、さらに問題が発生します)。データベースはレガシーであるため、接続文字列にMicrosoft.ACE.OLEDB.12.0が必要でした。これはOffice 2007(およびMSDE 2007)にも含まれていたことがわかりました。Office2007では、32ビットバージョンしか利用できません。そのため、MSDE 2010 32ビットをインストールする代わりに、 MSDE 2007をインストール になり、正常に機能します。他のアプリケーションは64ビットMSDE 2010(または64ビットOffice 2010)をインストールでき、アプリケーションと競合しません。

これまでのところ、これはすべてのWindows OS環境に適したソリューションであると思われます。

18
drharris

32ビットMS Officeバージョンがインストールされたシステムに再配布可能なMicrosoft Access Database Engine 2010の64ビットバージョンをインストールするための回避策は次のとおりです。

  • 64ビットバージョンのMicrosoft Access Database Engine 2010再頒布可能パッケージをインストールする前に、64ビットレジストリキー「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths」を確認してください。
  • 「mso.dll」レジストリ値が含まれていない場合、32ビットバージョンのMSがインストールされているシステムに64ビットバージョンのMicrosoft Access Database Engine 2010再配布可能ファイルをインストールした後、値を変更または削除する必要があります。 Officeがインストールされました。
  • 「/ passive」コマンドラインパラメータを使用して、再配布可能ファイルをインストールします。 「C:\ directory path\AccessDatabaseEngine_x64.exe」/ passive
  • 「mso.dll」レジストリ値を削除するか、名前を変更します。この値には、64ビットバージョンのMSO.DLLへのパスが含まれています(32ビットMS Officeバージョンでは使用しないでください)。

これで、「再構成」の問題なしに32ビットMS Officeアプリケーションを開始できます。 MS Officeの64ビットバージョンがインストールされている場合、「mso.dll」レジストリ値は既に存在することに注意してください。この場合、値を削除したり、名前を変更したりしないでください。

また、「/ passive」コマンドラインパラメータを使用したくない場合は、AceRedist.msiファイルを編集してMS Officeアーキテクチャチェックを削除できます。

  • microsoft Orcaをダウンロードしてインストールします: http://msdn.Microsoft.com/en-us/library/windows/desktop/aa370557(v = vs.85).aspx
  • accessDatabaseEngine.exeまたはAccessDatabaseEngine_x64.exeファイルを解凍します
  • orcaでAceRedist.msiファイルを開きます
  • 「CheckOfficeArchitecture」アクションを含む2つのテーブル行を検索し、これらの行をドロップします
  • 更新されたAceRedist.msiファイルを保存します

このファイルを使用して、Microsoft Officeの「競合する」バージョンがインストールされているシステムにMicrosoft Access Database Engine 2010再頒布可能パッケージをインストールできるようになりました(たとえば、32ビットMS Officeバージョンのシステム上の64ビットバージョン)上記の「mso.dll」レジストリ値(必要な場合)。

29
Peter Coppens

「Office 16 Click-to-Run拡張機能コンポーネント」を削除するように指定した、より具体的なエラーメッセージがありました

https://www.tecklyfe.com/fix-for-Microsoft-office-setup-error-please-uninstall-all-32-bit-office-programs-office-の手順に従って修正しました15-click-to-run-extensibility-component /

  • [スタート]> [実行](またはWinkey + R)に移動します
  • 「installer」と入力して(%windir%installerフォルダーを開きます)、すべてのファイルがWindowsに表示されることを確認します(フォルダー設定)
  • 「Subject」列を追加します(少なくとも400ピクセル幅にします)–列ヘッダーを右クリックし、[詳細]をクリックして、[件名]を見つけます。
  • [件名]列で並べ替え、エラー画面に記載されている名前が見つかるまで下にスクロールします(「Office 16クイック実行拡張コンポーネント」)
  • MSIを右クリックして、アンインストールを選択します
2
kloarubeek

2007バージョンをインストールします。使用しているOfficeのバージョンとは反対のバージョンをインストールすると、動作させることができるようです。

http://www.Microsoft.com/en-us/download/details.aspx?id=23734

1
Matthew Dolman

@Peter Coppinsへの同様のアプローチが答えます。これは少し簡単で、Orcaユーティリティを使用する必要がないと思います。

  1. 「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths」レジストリキーを確認し、値「mso.dll」が存在しないことを確認します。存在する場合、Office 64ビットがインストールされているようで、この回避策は必要ありません。

  2. Microsoft Access Database Engine 2010 Redistributable をダウンロードします。

  3. コマンドラインから次を実行します:AccessDatabaseEngine_x64.exe/passive

(注:このインストーラーはサイレントにクラッシュまたは失敗したため、コンポーネントを解凍して実行しました:AceRedist.msi/passiveおよびそれは正常にインストールされました。Windows10の問題かもしれません。)

  1. 「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths」キーの「mso.dll」値を削除するか、名前を変更します。

ソース: 2ビットMicrosoft Officeと共に64ビットMicrosoftデータベースドライバーをインストールする方法

1
Jahmic

Microsoft Access Database Engine 2010の両方のバージョンが共存できない場合、唯一の解決策はMicrosoftに不満を言うことです。32ビットアプリでこの64ビットバージョンを直接読み込むことは不可能であり、実行できるサービスはパイプまたはネットワークソケットを介して別の32ビットサービスまたはアプリケーションと通信する64ビットですが、かなりの労力が必要になる場合があります。

0
Rafael