Tôi thấy rằng Microsoft mã nguồn mở IL2JS, mà có vẻ là một công cụ để biên dịch các ứng dụng Silverlight thành javascript tinh khiết thông qua biên dịch IL.Làm cách nào để gọi IL2JS chính xác?
Tuy nhiên, tôi dường như không làm cho nó hoạt động. Khi tôi chạy:
PS C: \ nguồn \ IL2JS-master \ bin> ./il2jsr -rewrite C: \ FlatRedBallProjects \ Test1 \ Te st1 \ test Test1 \ Bin \ Debug \ Test1.dll out .js -reference \ IL2JS_mscorlib.dll
Khi tôi chạy này tôi nhận được
lỗi 3003:. Không có tên lắp ráp giống như lắp ráp 'JSTypes' đặc biệt 1 lỗi, 0 cảnh báo
Vì vậy, tôi cố gắng thêm một lựa chọn -reference cho jstypes và nhận được kết quả như sau:
PS C: \ nguồn \ IL2JS-master \ bin> ./il2jsr -rewrite C: \ FlatRedBallProjects \ Test1 \ Test1 \ Test1 \ Bin \ Debug \ Test1.dll -out test.js -reference. \ IL2JS_mscorlib.dll -reference. \ IL2JS_JSTypes_silverlight.dll
lỗi 3005: Không thể tải lắp ráp từ tập tin 'C: \ source \ IL2JS -master \ bin ': không thể tải mscorlib 1 lỗi, 0 cảnh báo
Vì vậy, có vẻ như bạn chỉ có thể có một tùy chọn -reference, nhưng bạn cần bằng cách nào đó tham khảo cả hai jstypes và mscorlib assemblies.
Tôi đang làm gì sai?
Sửa: Vì vậy, sau khi gỡ lỗi một số chi tiết nó có vẻ như cách chính xác để làm điều này là sử dụng 2 đối số -reference. Lý do tại sao sau này không hoạt động là do
CCI.SystemTypes.Initialize(false, true, ResolveReference);
// ----------------------------------------
// Account for mscorlib being loaded
// ----------------------------------------
mscorlib = CCI.SystemTypes.SystemAssembly;
if (mscorlib == null || mscorlib.Directory == null)
Trong AssemblyLoader.cs
. Câu lệnh if cuối cùng không thành công (mscorlib.Directory
là null). Bây giờ câu hỏi là tại sao ...