通过使用IronRuby v1.1.x在VS2010中创建IronRuby项目后,我通过导入它们几乎可以使用.NET库。但实际上不能将ironruby编译成exe/DLL。 我看到构建选项,但不能从IronRuby项目构建任何exe或DLL。请帮忙 !我可以将VS2010中的IronRuby项目编译成DLL/exe文件吗?
回答
您无法将IronRuby类编译为.NET程序集,然后从另一个程序集中访问它们。
Preet是正确的,你可以得到的是将IronRuby脚本嵌入(比方说)一个C#程序集。从C#端可以实例化你的Ruby类。因此,考虑下面的Ruby类:
class HelloWorld
def say_hello
puts 'Hello'
end
end
你可以从一个资源文件加载这个和C#运行:
using Microsoft.Scripting.Hosting;
using Microsoft.Scripting.Runtime;
using IronRuby;
var runtime = IronRuby.Ruby.CreateRuntime();
var engine = runtime.GetEngine("ruby");
var assembly = Assembly.GetExecutingAssembly();
var stream = assembly.GetManifestResourceStream("PathToResource.test.rb");
string code = new StreamReader(stream).ReadToEnd();
var scope = engine.CreateScope();
engine.Execute(code, scope);
dynamic helloWorldClass = engine.Runtime.Globals.GetVariable("HelloWorld");
dynamic ironRubyObject = engine.Operations.CreateInstance(helloWorldClass);
ironRubyObject.say_hello();
如果Visual Studio可以将IronRuby代码编译为EXE,那将会很棒。 – 2011-10-07 22:32:51
由于Iron Ruby仅仅是基于DLR的代码。您应该能够将代码添加到任何程序集的资源中。最终你需要一个引导来加载代码。这很可能是CLR语言。
这是否意味着我必须获取IronRuby源代码并将其与我的Ruby项目链接并使用.NET进行编译? – 2010-11-16 04:19:03
有一个伟大的IronRuby的宝石,包IronRuby的文件到一个Windows可执行文件。
https://github.com/kumaryu/irpack
要使用:
igem install irpack
irpack -o Program.exe Program.rb
- 1. 我可以在编译时检测项目中的文件吗?
- 2. 我可以将编译常量传递给项目引用吗?
- 3. 我可以在ironruby上创建库(dll)项目吗?
- 4. 我可以在项目之间共享预编译的头文件以减少编译时间吗?
- 5. WebMatrix可以编译我的Asp.net MVC项目吗?
- 6. 因为我可以编译一个Cocos2D-X的项目吗?
- 7. 我可以在VS2010中创建网站项目类型吗
- 8. 是否可以将nodejs项目编译为单个JavaScript文件?
- 9. 我们可以将C++文件添加到iOS项目中吗?
- 10. 我可以使用xbuild在Linux上编译Visual C++项目吗?
- 11. VS2010:编译64位的C++项目
- 12. 将g ++下载到windows可以保证您能成功编译Unix项目吗?
- 13. VS2010编译器自动生成不需要的.vsprops文件在MSBuild项目
- 14. 可以从VS2010部署项目中手动编写Wow6432Node条目吗?
- 15. 我可以将2个目录中的文件集成到一个目录吗?
- 16. 我可以将FlexMobile项目制作成纯粹的as3吗?
- 17. 在Java编译器将AST编译成类文件之前,我可以修改AST吗
- 18. 我可以使用sharedPreferences文件中的项目填充AlertDialog吗?
- 19. 我可以编译并运行Visual Studio代码中的.NET MVC 5项目吗?
- 20. 我可以在没有编译器的情况下将.c文件编译为.exe文件吗?
- 21. 有人可以反编译我的EXE文件吗?
- 22. 我可以禁用特定文件夹的预编译吗?
- 23. clojure/lein:我可以指定project.clj以外的项目文件吗?
- 24. 我可以使用Sublime编辑Visual Studio 2010项目中的CSS文件吗
- 25. VS2010可以生成NunitTest的情况吗?
- 26. 我可以使用less4j在ANT中少编译成css吗?
- 27. 编译将ATL项目从vs2010升级到vs2013的错误
- 28. 我可以编译我的C++类到静态库(.a)中以便在我的iPhone项目中使用吗?
- 29. 使用VS2010编译VS2015项目编译器
- 30. glibc可以编译成一个目标文件
http://stackoverflow.com/questions/561509/how-do-i-create-a-net-assembly-in-ironpython-的重复并从c调用它。 (不是一个严格的副本,但答案是一样的。) – cdhowie 2010-11-16 04:12:43
但如何编译成.NET程序集仍然没有线索?而这次是IronRuby而不是IronPython。 – 2010-11-16 04:22:20
这是因为它本身不可能。并没有关系;你不能这样做,因为IronRuby和IronPython都使用DLR。实际的语言根本无关紧要。 – cdhowie 2010-11-16 06:10:10