I have a solution in Visual Studio with 5 projects. They are:
Foo.Core
: Core functionalityFoo.Api
: Generated code built on top of coreFoo.Web
: Web-specific extensionsFoo.Web.Mvc
: MVC-specific extensionsNewtonsoft.Json
: 3rd party library
I want to use ILMerge to merge Foo.Core
, Foo.Api
and Newtonsoft.Json
into a single assembly, called Foo
. That's the easy part.
The problem I'm running into is that Foo.Web
and Foo.Web.Mvc
both need to reference all three of the merged assemblies.
If I reference the original assemblies, they will have invalid references after I do the ILMerge.
If I reference the ILMerged assembly, I have to reference a debug assembly and then change it before I package everything up, which doesn't seem ideal.
I've tried creating a project called Foo
, which references the 3 merged assemblies and replaces its own output with the ILmerged assembly, but that doesn't seem to work at all.
Is there a reliable way to do this?