Message-ID: <1569471342.4315.1369438030487.JavaMail.firstname.lastname@example.org> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_4314_1232848914.1369438030486" ------=_Part_4314_1232848914.1369438030486 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
How to combine Boo.Lang.dll into your own app using ILMerge.
Anytime you create an application or library using Boo, you have to dist= ribute the Boo.Lang.dll with it in order for it to run. This is not always= desirable for libraries.
ILMerge can combine multiple .NET assemblies int= o one dll or exe. It is currently Windows only, but your combined exe or d= ll should run on other platforms using Mono. Eventually there will be simi= lar tools available for Mono. There is already one called mkbundle, but it= combines the entire mono runtime into your app.
After you install ILMerge, the ILMerge.exe command line tool should be l= ocated under C:\Program Files\Microsoft\ILMerge\. You may want to add this= to your PATH variable so you don't have to type the whole path, or else dr= ag a copy of ILMerge.exe to C:\Windows\System32.
(See the ASP.NET page for tips on h= ow to use the Windows command line and how to add paths to your PATH variab= le)
The simplest way to combine Boo.Lang.dll into your exe or dll is this co= mmand:
There are also other advanced options for ILMerge that control features = like assembly attributes and key signing. See the ILMerge page for more in= formation.
Note though, by adding multiple modules together into one dll, it does c=
hange how you can use that dll from boo (see BOO-413)=
If you have a library with a standalone function ("def sayit(m as stri= ng):"), then compile it to a dll, you can import that dll from another= boo script and simply call "sayit("hi")". But, if you= use ILMerge and combine that dll with boo.lang.dll, that will no longer wo= rk. You have to find out the module name and refer to it explicitly, like = "SomeModule.sayit("hi")". This may also not be very de= sirable, so be sure to test your app or library after using ILMerge.
I'd like a -merge option for booc and sharpdevelop that merges Boo.Lang.= dll for me, but unfortunately ILMerge is not open source and licensed for t= hat.------=_Part_4314_1232848914.1369438030486--