我使用文本编辑器和Mono工具链(在Mac上)创建了a tool,现在我想知道如何在不使用Mono运行时的情况下在Windows上运行生成的*.exe
。我不是.NET程序员,所以我不熟悉如何做到这一点。我想以某种方式只输入razor-cli.exe arg1 arg2 ...
,它就会起作用(不知何故)。
这就是我目前的运行方式(也适用于Windows):
# Use "set MONO_PATH=...." on Windows
export MONO_PATH="lib/RazorEngine.3.8.2/lib/net45:lib/Microsoft.AspNet.Razor.3.0.0/lib/net45:lib/Newtonsoft.Json.8.0.3/lib/net45"
mono razor-cli.exe partial.example.cshtml model.example.json
这里我将所有程序集的路径添加到MONO_PATH
,由Mono运行时使用。我猜测.NET有一些类似的机制,可能使用一个额外的文件,指定运行时可以在哪里找到所需的dll。
答案 0 :(得分:2)
http://www.mono-project.com/archived/best_practices/#monopath
MONO_PATH会覆盖程序集加载过程,并会忽略应从全局程序集缓存中提取的程序集,它只是一个调试工具,你应该避免使用它。
所以,不要这样做。
请参阅MSDN: How the Runtime Locates Assemblies,基本上:将程序集放在可执行文件旁边的目录中,或将它们放在GAC中。
答案 1 :(得分:1)
它应该开箱即用:http://www.mono-project.com/docs/faq/technical/#mono-platforms
生成的命令行应为:
razor-cli.exe partial.example.cshtml model.example.json
对于所需的程序集,如果您没有覆盖默认的解析机制,系统将查看应用程序的文件夹和/或GAC。
您可能还会发现阅读this resource很有趣。
它建议将您的应用程序及其所有库发送到同一文件夹,并描述运行时将如何查找所需的程序集。