Tôi đang sử dụng đoạn mã sau để tham khảo một dll vỏtham khảo một cửa sổ shell giao diện sử dụng .net 4.0
Type t = Type.GetTypeFromProgID("Shell.Application");
Shell s = (Shell)Activator.CreateInstance(t);
Console.WriteLine("success");
Console.ReadLine();
Nó hoạt động tốt trên các cửa sổ của tôi 7 phát triển machine.But khi tôi cố gắng chạy exe trên Win 2003 máy chủ Tôi nhận được ngoại lệ này
Unable to cast COM object of type 'System.__ComObject' to interface type 'Shell3
2.Shell'. This operation failed because the QueryInterface call on the COM compo
nent for the interface with IID '{866738B9-6CF2-4DE8-8767-F794EBE74F4E}' failed
due to the following error: No such interface supported (Exception from HRESULT:
0x80004002 (E_NOINTERFACE)).
Tôi lấy một số trợ giúp từ C#: Referencing a windows shell interface nhưng không may mắn.
Tôi đang tham khảo vỏ sử dụng Controls Microsoft Shell và Tự động hóa tài liệu tham khảo mà là Interop.Shell32 dll
Nếu ai đó có thể hướng dẫn nó sẽ thực sự hữu ích.
Đó là cũ, tôi không nghĩ rằng guids đã thay đổi nhưng ai mà biết được. Chạy regedit.exe trên máy đó và điều hướng đến HKCR \ Shell.Application. Xác minh rằng giá trị khóa CLSID là {13709620-C279-11CE-A49E-444553540000} –
Có một giải pháp đơn giản hơn, hãy xem http://stackoverflow.com/a/24967301/625349 –