2010-02-18 37 views
6

Tôi đang sử dụng máy chủ tập lệnh của windows cho một số loại ứng dụng trình cài đặt và tôi đang tạo phím tắt trong trình đơn bắt đầu với nó. Vấn đề này xuất hiện khi tôi chuyển sang môi trường x64 (win7 cuối cùng x64 + vs2010)sử dụng Máy chủ Windows Script

Tôi đã thêm tham chiếu vào Mô hình đối tượng lưu trữ của Windows Script (từ c: \ windows \ syswow64 \ wshom.ocx), nó tạo Interop.IWshRuntimeLibrary dll.

Tôi đã thêm 'using IWshRuntimeLibrary;' đến tập tin cs của tôi, nhưng khi tôi đã cố gắng để tạo ra

WshShell sh = new WshShellClass(); 

nó ném một ngoại lệ:

Không thể tải tập tin hoặc lắp ráp 'Interop.IWshRuntimeLibrary, Version = 1.0.0.0, Culture = trung tính , PublicKeyToken = null 'hoặc một trong các phụ thuộc của nó. Một nỗ lực đã được thực hiện để tải một chương trình với một định dạng không chính xác.

Tôi giả định rằng tôi cần phiên bản 64 bit của wshom.ocx đó để làm việc, nhưng tôi không biết tôi nên thử làm gì.

Hoặc tôi sẽ chỉ đổ nội dung của Windows Script, nhưng tôi cần một cách khác để tạo lối tắt menu bắt đầu từ ứng dụng .net.

Trả lời

6

Dường như .NET yêu cầu tất cả các cụm phải giống nhau 32 bit hoặc 64 bit và sẽ không cho phép bạn kết hợp và khớp. Vì vậy, nếu ứng dụng của bạn hoạt động trong 32 bit, bạn nên thử thiết lập các tùy chọn trình biên dịch (trong thuộc tính dự án) để tạo một ứng dụng "x86" (tức là 32 bit) một cách rõ ràng (nên chạy trên cả 32 bit và 64) -bit) Điều này có thể dễ dàng hơn việc theo dõi xuống phiên bản 64 bit của máy chủ lưu trữ tập lệnh.

Lưu ý rằng tùy chọn trình biên dịch mặc định có vẻ là "Bất kỳ", sẽ chạy hội đồng .NET dưới dạng 64 bit khi sử dụng hệ điều hành 64 bit và 32 bit trên các hệ điều hành 32 bit.

+1

+1 Andy làm việc tốt. Tôi nhấn vào cùng một vấn đề này khi nâng cấp một giải pháp từ VS 2008 lên VS 2010 khi chạy trên x64. Mặc dù phiên bản VS 2008 và VS 2010 đều được xây dựng thành 'AnyCPU', chỉ phiên bản VS 2008 mới chạy đúng. Chuyển đổi phiên bản VS 2010 thành 'x86' đã khắc phục được nó, cảm ơn lòng tốt. Bí ẩn vẫn là lý do tại sao phiên bản VS 2008 chạy đúng trên máy x64 của tôi khi nhắm mục tiêu 'AnyCPU', nhưng tôi rất vui khi nó hoạt động ngay bây giờ. Cảm ơn Andy! –

+0

không biết tại sao điều này lại xảy ra. Nhận được cùng một vấn đề. Tôi cần "AnyCPU" để làm việc. –

Các vấn đề liên quan