在玩了一段时间之后,尝试了各种命令行开关的组合jsc.exe文件,我很确定你想做的事不会如你所愿。如果尝试将包含函数的js文件编译到.Net库程序集中,则会出现错误:
BitField.js(1,1) : error JS1234: Only type and package definitions are allowed inside a library
我会保持你的“干净”比特域.js文件,然后创建一个批处理文件,将其包装在JScript类中,并将其写出一个“脏”js文件。如果把它看作是将代码编译到DLL中的一部分,那么它是相当干净的。包装的代码比特域.js进入BitFieldClass.js文件看起来像这样:
合并到-类.js
var fso = new ActiveXObject("Scripting.FileSystemObject");
var ForReading = 1;
var inputFile = fso.OpenTextFile("BitField.js",ForReading, false);
var outputFile = fso.CreateTextFile("BitFieldClass.js", true);
outputFile.write("class BitFieldClass{\n");
while (!inputFile.AtEndOfStream)
{
var textLine = inputFile.ReadLine();
outputFile.write (textLine + "\n");
}
outputFile.write("}");
outputFile.close();
然后打包和编译的批处理文件非常简单:
编译-js.bat公司
cscript merge-into-class.js
jsc /t:library /out:BitFieldClass.dll bitFieldClass.js