通過使用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