我已经为 ClojureCLR 创建了一个补丁,允许 Clojure.Compile.exe 在给定一个 .clj 文件列表时构建一个单个 .dll 或 .exe。这基本上与 ILMerge 的概念相同,但它给拥有许多 .clj 文件的项目的开发人员带来了好处,而不仅仅是给 clojure.dll 本身。
可以在命令行中指定合并/分离选项,因此用户可以选择他们更喜欢的以前的方法。
我没有从 ClojureCLR 构建过程中删除 ILMerge,但是如果需要,理论上很容易做到。
ILMerge 正在运行,但其许可证不允许重新分发,并且需要每个编写程序的人员学会使用该工具(除非其已内置到 nLeiningen 和 vsClojure)。如果 Clojure.Compile.exe 最初就不生成许多 dll,似乎会更好。
基本用法是
Clojure.Compile.exe -include test.clj -include test2.clj -outputAssemblyName test.dll
或者--
Clojure.Compile.exe -i test.clj -i test2.clj -o test.dll
如果你省略了 -o 参数,它将与之前的功能相同。