ravibpatel / ILRepack.Lib.MSBuild.Task

MSBuild task for ILRepack which is an open-source alternative to ILMerge.
Other
107 stars 30 forks source link

Force exclude a library reference from being merged in #40

Open MWstudios opened 10 months ago

MWstudios commented 10 months ago

I'm trying to merge a library X that references an optional library Y (it can run without it, any potential exceptions are ignored). However, ILRepack goes out of its way to merge all references, including the optional ones that I removed from my project, which results in "Failed to resolve assembly: Y". I tried adding <InputAssemblies Exclude="Y"/> but the error still occurs.

The only solution I can think of is to make a copy of X that doesn't reference Y at all, but then I would have to update two copies of X in parallel.

How can I force exclude a library reference so ILRepack won't try to merge it?

KirillOsenkov commented 8 months ago

When you get "Failed to resolve assembly: Y" it doesn't mean that ILRepack wants to merge it, it means that it just needs to read Y to be able to understand X better. You can help ILRepack by providing a /lib: where it can resolve Y from. If you provide a directory with Y instead of specify Y directly, it will not get merged.

MWstudios commented 8 months ago

Thank you! To whomever sees this in the future, I wrote:

<ILRepack
    LibraryPath="extra_dlls_dir"
    />

or

<ILRepack
    LibraryPath="@(LibraryPath)"
    />

<ItemGroup>
    <LibraryPath Include="extra_dlls_dir"/>
</ItemGroup>