Rasmus Oudal Edberg

Hi,

I'm trying to use ILMerge to create components for the Umbraco web framework. I thought it would be nice is I only had to distribute one dll with my component.

The setup I'm using is ( a bit simplified):

MyComponent.csproj (Visual Studio web project)

....

--References

----umbraco.dll (local reference, Copy Local == false)

----SomeComponent.dll (local reference, Copy Local == true)

----System.Web (GAC reference)

....

The reason that I have Copy Local == false on the umbraco.dll is that this dll is part of the solution that my component must be deployed to. The SomeComponent.dll is a component used by my UserControls in my project and this is the dll I would like to merge with MyComponent.dll

However if I execute:

"ilmerge.exe /out:MyComponent.dll SomeComponent.dll"

i get an error message saying:

"Unresolved assembly reference not allowed: umbraco"

I can however not just include the umbraco.dll since this would result in the classes within the umbraco.dll being defined twice when I deploy the MyComponent.dll in the umbraco web application.

So my question is there anyway to avoid this error message or is ILMerge an all or nothing solution

Regards,

Rasmus Oudal Edberg




Re: .NET Base Class Library ILMerge: Problem with references

Feng Chen - MSFT

Hi Rasmus,

ILMerge needs to know where all of the referenced assemblies are located (just like the compiler). It looks by default in the directory containing the input directories and the GAC. If you would like to specify other directories, then use the /lib option to ILMerge to specify those locations. So in your example, you could use ˇ°/lib:\dddd\ˇ± where ˇ°ddddˇ± is the path to the directory in which umbraco.dll is located. Please get in touch with the author of ILMerge directly if you need further help.

(ˇ°mbarnett symbol_that_is_an_a_surrounded_by_a_circle microsoft dot comˇ±)

Hope this helps!

Thanks!






Re: .NET Base Class Library ILMerge: Problem with references

Evan121

Hello,
I have a similar problem but it's with a Com DLL. I have to register the Com DLL it with Regsvr32 to get Visual Studio 2005 to compile my application but that doesn't seem to be enough for ilmerge. I have placed the dll in the same directory as my other dependancies but it doesn't seem to like it.


Any ideas

Thanks