2012-11-07 13 views
5

Ho visto Microsoft open source: IL2JS, che sembra essere uno strumento per compilare applicazioni Silverlight su puro javascript tramite la compilazione dell'IL.Come si richiama IL2JS correttamente?

Tuttavia, non riesco a farlo funzionare. Quando eseguo:

PS C: \ origine \ IL2JS-master \ bin> ./il2jsr -rewrite C: \ FlatRedBallProjects \ Test1 \ Te st1 \ test Test1 \ Bin \ Debug \ Test1.dll -out js -Referenza \ IL2JS_mscorlib.dll

Quando ho eseguito questo ho

errore 3003:. Nessun nome assembly assomigliava assemblaggio delle speciali '' JSTypes 1 errori, 0 avvertimenti

così ho cercato di aggiungere un'altra opzione -Referenza per jstypes e ottenuto il seguente risultato:

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

errore 3005: Impossibile caricare l'assembly dal file 'C: \ source \ IL2JS -master \ bin ': impossibile caricare mscorlib 1 errori, 0 avvisi

Quindi sembra è possibile avere solo un'opzione di riferimento, ma è necessario in qualche modo fare riferimento a entrambi gli assembly jstypes e mscorlib.

Cosa sto sbagliando?


Edit: Così, dopo un po 'di più il debug sembra che il modo corretto per farlo è quello di utilizzare 2 argomenti -Referenza. Il motivo per cui quest'ultimo non funziona a causa di

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

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

In AssemblyLoader.cs. L'ultima istruzione if fallisce (mscorlib.Directory è null). Ora la domanda è: perché ...

risposta

0

Secondo https://github.com/Reactive-Extensions/IL2JS/blob/master/HOW_TO_BUILD.txt, è necessario impostare la variabile d'ambiente IL2JSROOT,

"o impostando la Registery HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ IL2JS @ Root essere impostato. L'impostazione di PowerShell in alto imposta questa variabile per te.Se desideri che utilizzi le soluzioni o i progetti altrove, imposta questa variabile da te. "

Provalo, potrebbe essere d'aiuto.

Problemi correlati