Laden des TypeScript-Compilers in ClearScript, "WScript ist undefiniert", unmögliche Aufgabe?
Ich habe versucht mitClearScript zum laden derTyposkript Compiler, um einige grundlegende TypeScript-Code zu kompilieren.
Leider erhalte ich beim Ausführen der TypeScript-Compilerquelle den folgenden Fehler:
'WScript' ist undefiniert
Dies ist dasLINQPad Programm, das ich verwendet habe, platzieren Sie die ClearScript-DLLs und dieTypeScript-Compiler-Datei Neben dem .linq-Programm:
void Main()
{
using (var js = new Microsoft.ClearScript.Windows.JScriptEngine(Microsoft.ClearScript.Windows.WindowsScriptEngineFlags.DisableSourceManagement))
{
var typeScriptSource = File.ReadAllText(Path.Combine(Path.GetDirectoryName(Util.CurrentQueryPath), "tsc.js"));
js.Execute(typeScriptSource);
const string typeScriptCode = @"
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return ""Hello, "" + this.greeting;
}
}
function test()
{
var greeter = Greeter(""world"");
return greeter.greet();
}
";
js.Script.TypeScript.Compile(typeScriptCode);
object result = js.Script.test();
result.Dump();
}
}
#region Copy ClearScript to correct location
static UserQuery()
{
foreach (var filename in new[] { "ClearScriptV8-32.dll", "ClearScriptV8-64.dll", "v8-ia32.dll", "v8-x64.dll" })
{
try
{
string sourcePath = Path.Combine(Path.GetDirectoryName(Util.CurrentQueryPath), filename);
string targetPath = Path.Combine(Path.GetDirectoryName(typeof(Util).Assembly.Location), filename);
File.Copy(sourcePath, targetPath, true);
}
catch (IOException ex)
{
unchecked
{
const int fileInUseHresult = (int)0x80070020;
if (ex.HResult != fileInUseHresult)
throw;
}
}
}
}
#endregion
Der Fehler tritt in dieser Zeile auf:
js.Execute(typeScriptSource);
Ich habe eine .zip-Datei mit allem erstellt, was Sie brauchenLINQPad um die .linq Datei zu laden und zu experimentieren. Die ClearScript-DLLs werden aus der unveränderten Quelle erstellt, aber wenn Sie mir nicht vertrauen, sollten Sie in der Lage sein, diese selbst zu reproduzieren (wenn Sie sie nicht haben).
Es ist hier erhältlich:Dropbox Link zu SO19023498.zip.
Was ich versucht habe:
Ich habe versucht, diesen Code zuerst auszuführen:
var WScript = new ActiveXObject("WSH.WScript");
Dies erzeugte nur diesen Fehler:Automation server can't create object
Ich sah nichtWSH.WScript
in der Registrierung unter HKEY_CLASSES_ROOT, das könnte es sein.
Ich habe versucht herauszufinden, wie das Objekt aus .NET erstellt und in den Skriptkontext eingefügt werden kann, aber anscheinend bin ich nicht an der richtigen Stelle.