12

奇妙なエラー:

エラーMSB8011:出力の登録に失敗しました。ユーザーごとのリダイレクトを有効にするか、管理者特権でコマンドプロンプトからコンポーネントを登録してみてください。C:\ Program Files \ MSBuild \ Microsoft.Cpp \ v4.0 \ Microsoft.CppCommon.targets 744

ActiveXコントロールでOpenSceneGraph(OSG)を使用しようとすると、このエラーが発生しました。グーグル検索は、実際には問題を解決しなかった、またはエラーの正確な原因を特定しなかったすべての種類の解決策を示したので、私は解決策を1つの場所に置きたいと思います:ここに。

私はそれに対する解決策を見つけました、そして彼らが同じ問題に遭遇した場合に人々が彼らの解決策を見つけることができるように、私自身の質問にすぐに答えるでしょう。

4

6 に答える 6

24

このエラーは、Visual Studio(2010)がOCXを作成するためにプログラムに必要な依存dllファイルを見つけられない場合に発生します。OCXはプロジェクトのデバッグディレクトリ(デバッグビルドの場合)に作成され、依存するDLLが存在するフォルダーとして「作業ディレクトリ」(プロジェクト設定で)を指定しても、VisualStudioがDLLを見つけるのに役立ちません。

ここでの問題は(これが問題を解決するのに頭痛の種になることです)、Visual StudioがOCXを作成できなければ、OCXでDependencyWalkerを実行できない場合があります。したがって、不足しているDLLが問題であることがわかりません。

どのDLLをDebugフォルダーに配置する必要があるかがわかっている場合は、それらをそこに配置するだけで、エラーが消えます。わからない場合、およびOCXが作成されなかった場合は、プロジェクト設定>リンカー>一般>出力の登録に移動し、値を「いいえ」に設定します。これにより、OCXが作成されますが、依存DLLが必要な場合の登録プロセスは実行されません。

OCXをダブルクリックすると、Dependency Walkerに黄色の円のアイコンが付いた不足しているDLLが表示されたら、それらのDLLをOCXと同じフォルダーに配置するだけで、プログラムは正常に機能します。とても簡単です。

于 2012-05-07T05:33:43.343 に答える
8

問題は、プロジェクトがCOMオブジェクトを登録しようとしているが、それを行うための十分な特権がないことである可能性があります。Windows 7および8では、zippy32には管理者権限が必要です。

できることは次のとおりです。デスクトップにC:\ Windows \ SysWOW64 \ cmd.exe(32ビットコンソール)へのショートカットを作成します。右クリックし、[プロパティ]->[詳細設定]->[管理者として実行]をオンにします。ショートカットを起動し、ユーザーアクセス制御がポップアップすることを確認して、[はい]をクリックします。この特別なコンソールウィンドウから構築を開始します。

于 2014-05-30T00:51:30.673 に答える
5

run as "Administrator" VS 2015を使用してみましたが、問題を解決できました。

于 2017-02-18T11:18:45.567 に答える
3

MSB8011は、zippy32で問題が発生するたびに発生する一般的なエラーのようです。私の場合、ユーザーごとの登録が「はい」に設定されていると、zippy32はコード4で終了しましたが、作成したDLLはDllInstallエントリポイントを定義していませんでした。

于 2013-03-04T19:14:04.633 に答える
2

プログラムファイルのショートカットからこのIDEを起動し、Visual Studio 2010/2013を選択して右クリックし、管理者として実行を選択して、VS 2013 IDEを介してこれを行うこともできます。IDEを起動した後、ソリューションファイルを開いてビルドします。 regsrv32 DLL/COM登録が原因でこのようなエラーが発生する

于 2015-02-27T12:52:44.893 に答える
1

Propertyページでに移動します

構成プロパティ->ビルドイベント->ビルド後イベント

あなたはそれを。として参照しているかもしれません/Service。以下に示すようにオプションを変更すると役立つ場合があります。

変更前:

変更前

変更後:

変更後

于 2016-05-09T04:18:27.903 に答える