2012-11-07 13 views
5

Zauważyłem, że Microsoft open-source IL2JS, który wydaje się być narzędziem do kompilowania aplikacji Silverlight do czystego javascript poprzez kompilację IL.Jak prawidłowo wywołać IL2JS?

Jednak nie mogę sprawić, żeby zadziałało. Kiedy uruchomić:

PS C: \ source \ IL2JS-master \ bin> ./il2jsr -rewrite C: \ FlatRedBallProjects \ Test1 \ Te st1 \ test Test1 \ bin \ Debug \ Test1.dll wymeldowanie js -reference \ IL2JS_mscorlib.dll

Kiedy uruchamiam to mam

błąd 3003:. No name montaż przypominał montaż specjalnego 'JSTypes' 1 błędy, 0 ostrzeżenia

Więc starałem się dodać inną opcję -reference dla jstypes i uzyskałem następujący wynik:

PS C: \ source \ IL2JS-master \ bin> ./il2jsr -rewrite C: \ FlatRedBallProjects \ Test1 \ Test1 \ Test1 \ Bin \ Debug \ Test1.dll -out test.js -reference. \ IL2JS_mscorlib.dll -referencja. \ IL2JS_JSTypes_silverlight.dll

Błąd 3005: Nie można załadować zestawu z pliku "C: \ źródło \ IL2JS -master \ bin ': nie można załadować mscorlib 1 błędy, 0 ostrzeżeń

Wygląda na to, że możesz mieć tylko jedną opcję -referencji, ale musisz w jakiś sposób odwoływać się zarówno do jstypów, jak i do zestawów mscorlib.

Co robię źle?


Edit: Więc po kilka debugowanie wydaje się właściwy sposób, aby to zrobić jest użycie 2 argumenty -reference. Powodem, dla którego ten ostatni nie działa, jest

 CCI.SystemTypes.Initialize(false, true, ResolveReference); 

     // ---------------------------------------- 
     // Account for mscorlib being loaded 
     // ---------------------------------------- 
     mscorlib = CCI.SystemTypes.SystemAssembly; 
     if (mscorlib == null || mscorlib.Directory == null) 

W AssemblyLoader.cs. To ostatnie zdanie if nie powiedzie się (mscorlib.Directory ma wartość null). Nasuwa się pytanie, dlaczego ...

Odpowiedz

0

Według https://github.com/Reactive-Extensions/IL2JS/blob/master/HOW_TO_BUILD.txt, trzeba ustawić zmienną środowiskową IL2JSROOT,

„lub ustawienie registery HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ IL2JS @ korzenia być ustawiony. Powyższa konfiguracja powershell ustawia tę zmienną dla Ciebie. Jeśli chcesz, aby używać rozwiązań lub projektów w innym miejscu, ustaw tę zmienną samodzielnie. "

Spróbuj, może to pomóc.