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 ...