Microsoft Shell Control And Automation
アプリケーションは、次の場所にあるCOM 参照を使用する必要があります。C:\Windows\system32\shell32.dll
しかし、その参照を追加した後、VS 2010Interop.Shell32.DLL
はターゲット ビルド ディレクトリに dll を追加しました。すべて正常に動作しています。ただし、MSI セットアップ ウィザード プロジェクトをビルドする場合。shell32.dll
依存関係として追加します。よし、問題ない。
ただし、インストール時に、ターゲット インストール ディレクトリにもコピーshell32.dll
されInterop.Shell32.DLL
ます。アプリケーションを実行すると、奇妙なエラーが表示されます。shell32
しかし、インストール ディレクトリから手動で削除すると、すべて正常に動作します。
MSI がshell32.dll
インストール ディレクトリにコピーしているのはなぜですか? 64 ビット OS には必要ですか? はいの場合、なぜInterop.Shell32.DLL
ですか?私のアプリでshell32.dll
は問題があるようですが、コピーされないようにする方法はありますか?
編集:
セットアップ プロジェクトから除外shell32.dll
しましたが、64bit OS では問題になりますか?
Edit2:
shell32.dll
atC:\Windows\system32\
は実際には 5KB ですが、MSI は 11 MB をコピーします。それは何ですか ?