我在C#中使用外殼擴展創建了非常簡單的上下文菜單。它在Windows XP 32位下工作正常,但在Windows 7 64位菜單項下沒有出現。上下文菜單外殼擴展不能在Windows 7下工作64位
我試圖建立輸出到x64但沒有效果。
Simple Source包含ContextMenu並且安裝項目爲here。
貌似Wow6432應安裝項目,相同的註冊進行處理,並增加了全局程序集緩存
我會很感激有關此問題的幫助/建議。
我在C#中使用外殼擴展創建了非常簡單的上下文菜單。它在Windows XP 32位下工作正常,但在Windows 7 64位菜單項下沒有出現。上下文菜單外殼擴展不能在Windows 7下工作64位
我試圖建立輸出到x64但沒有效果。
Simple Source包含ContextMenu並且安裝項目爲here。
貌似Wow6432應安裝項目,相同的註冊進行處理,並增加了全局程序集緩存
我會很感激有關此問題的幫助/建議。
我必須強烈建議您遠離Esposito編寫的任何代碼。像往常一樣,在ShellExt文件夾中他的P/Invoke聲明是完全錯誤的,他們不能在64位代碼中工作。首先發布這個代碼是非常不負責任的,外殼擴展不應該在4.0之前使用.NET CLR版本。如果你想拯救它,請訪問pinvoke.net。
在Visual Studio中檢查DLL的平臺,並確保它是64位的。 64位進程無法將32位DLL加載到其進程空間中(反之亦然)。
要構建DLL的64位版本,請使用Visual Studio的配置管理器創建新的解決方案平臺。選擇X64(而不是X86或任何平臺),然後重建項目。如果您使用的是腳本構建,那麼C#編譯器也有command-line switches。
我也試過這個,但後來我有「BadImageFormatException未處理」,並建議此解決方案是爲x86更改構建 – 2010-04-13 18:12:45
什麼是您的參考?你在項目中引用了任何32位的DLL嗎?這會限制您的64位Windows資源管理器兼容性。 – 2010-04-13 18:17:13
我正在使用ShellExtension,所以他相信他使用的是32位DLL的Shell32.dll。 – 2010-04-13 18:20:07
我會遇到同樣的問題。您需要在安裝文件中更改InstallUtil.dll。我在博客上寫了一篇關於它的文章。 http://artyomgrigor.wordpress.com/2010/10/06/register-shell-extension-context-menu-also-on-windows-x64-part-2/
我用C++編寫了這個建議,根本沒有問題,thx對於有用的建議:) – 2010-04-14 20:11:59