Загрузка компилятора TypeScript в ClearScript, «WScript не определен», невыполнимая задача?
Я пытался с помощьюClearScript загрузитьМашинопись компилятор для того, чтобы скомпилировать базовый код TypeScript.
К сожалению, при выполнении исходного кода компилятора TypeScript я получаю эту ошибку: '
WScript» не определено
ЭтоLINQPad программа яиспользовать, поместите ClearScript DLL 'с иФайл компилятора TypeScript наряду с программой .linq:
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
Ошибка возникает в этой строке:
js.Execute(typeScriptSource);
Я создал файл .zip со всем, что вам нужноLINQPad загрузить файл .linq и поэкспериментировать. ClearScript dll 's создаются из неизмененного источника, но если вы нене верьте мне, вы должны быть в состоянии воспроизвести их самостоятельно (если вы неу них это есть).
Это доступно здесь:Dropbox Ссылка на SO19023498.zip.
Что я'мы пробовали:
Я попытался выполнить этот код первым:
var WScript = new ActiveXObject("WSH.WScript");
Это только произвело эту ошибку:Automation server can't create object
я не виделWSH.WScript
в реестре под HKEY_CLASSES_ROOT, так что это может быть.
Я попытался выяснить, как создать объект из .NET и установить его в контексте скрипта, но я, очевидно, не смотрю в нужном месте.