1

Visual Studio 2005のC#でビルドされたプロジェクトがあります。Windowsアプリケーション(VS2010)のインストーラーを作成しましたが、WindowsXPSP3にインストールされて正常に動作します。Windows 7 32ビットにインストールしようとすると、インストールは成功したと表示されますが、アプリケーションを開こうとすると、次のエラーメッセージが表示されます。

致命的なエラーが発生しました。DLL'VistaDb20.dll'を読み込めません:メモリ位置へのアクセスが無効です。(HRESULTからの例外:0x800703E6)

人々は私がコマンドラインでこれを実行することを提案しました:zippy32 VistaDb20.dll

エラーメッセージが表示されます:

モジュール「VistaDb20.dll」がロードされましたが、エントリポイントDllRegisterServerが見つかりませんでした。「VistaDb20.dll」が有効なDLLまたはOCXファイルであることを確認してから、再試行してください。

そこで、.NET Framework Assembly Registration Utility 2.0.50727.4927を使用してVistaDb20.dll/tlb:VistaDb20.tlbを再起動しようとすると、エラーが発生します。

RegAsm:エラーRA0000:有効な.NETアセンブリではないため、「VistaDb20.dll」の読み込みに失敗しました。

この.dllの問題でWindows7でアプリケーションを実行する方法がわかりません。どんな助けでもいただければ幸いです。このアプリケーションとデータベースは、VistaDB2.1を使用して作成されました

私はそれを作成しなかったので実際のdllを変更することはできないと思いますが、おそらくVisual Studioでdllのいくつかのプロパティを変更する必要がありますか?

4

2 に答える 2

1

これによるとあなたの問題は、このDLLがDEPと互換性がないことです。これを回避するには、DEPを無効にする必要がありますが、長期的には、この特定の依存関係から自分自身を引き離すことを試みる必要があります。

于 2012-03-08T18:48:37.150 に答える
1

RegAsmコマンドを使用してVB.NETアセンブリを登録しようとしたときに、次のエラーが発生しました。

RegAsm:エラーRA0000:有効な.NETアセンブリではないため、「VistaDb20.dll」の読み込みに失敗しました。

適切な.NETFrameworkのRegAsmを実行して購入する問題を解決しました。

つまり、コンパイルの高度なオプション(VS2010)でターゲットとして作成したものと同じフレームワークのツールを使用する必要があります。

于 2012-08-09T17:00:28.843 に答える