tags:

views:

1240

answers:

4

Hi, I'm currently working on a project where we have a lot of dependencies. I would like to compile all the referenced dll's into the .exe much like you would do with embedded resources. I have tried ILMerge but it can't handle .xaml resources.

So my question is: Is there a way to merge a WPF project with multiple dependencies into a single .exe?

+2  A: 

.NET reactor has the feature of merging the assemblies and its not very expensive.

Hemant
Can it handle WPF projects as well? It sure looks promising.
Farawin
Has anyone succeeded in using Reactor to solve their WPF merging problems? At $180 it's actually affordable as a product for a poor shareware developer like myself, unlike SmartAssembly.
chaiguy
Well I tried it out and it works! However I still want to see if I can get things working without having to shell out almost $200.
chaiguy
I tried it on Net4.0 WPF assemblies and it does not work for me -- all my merged app does it displaying info the merging was done by unregistered version of .Net Reactor.
macias
A: 

This page on MSDN says you should be able to use ilmerge. Not Done it myself though.

Preet Sangha
Nope, ILMerge is not capable to merge WPF app.
macias
+1  A: 

This doesn't work because ILMerge doesn't know how to fixup the BAML to point to the correct references. Newer commercial apps might be BAML aware though.

Paul Betts
+5  A: 

{smartassembly} is the BEST ever product. It can obsfucate or embedd your dlls.

Try this: http://www.smartassembly.com/

You can also do a lot of improvings on your application so it will run faster.

And yes. You can use it for WPF.

Timotei Dolean
I tried this product and it worked correctly where ILMerge failed. It was very easy to use.
Duncan Edwards
We use it with a Wpf application and it works great...
Jason Stevenson
Looks impressive, but it does not let you to point out what files you would like to assembly (it limits you to detected files). As the effect all resource dlls (with translated strings) are left alone, and you still have one executable with additional dlls. I thought that the point of merging would be one executable and 0 dlls.
macias