Skip to content

Degradated performance in Azure Devops builds after updating from version 2.0.34.2 to 2.0.40 #68

@pwfick

Description

@pwfick

I am not sure this is a bug, but I would like to report it anyway.

We recently upgraded from version 2.0.34.2 to 2.0.40 and experienced a signification degradation in performance in Azure Devops builds. The time needed for the ILRepack task increased from about 4 seconds to more than 7 minutes. Curiously, the performance degradation is only observed in builds on the Azure Devops platform. I do not see it when I build my project locally.

Running in verbose mode, it seems that the build hangs on warnings of unresolved dependency references in the step "Processing module initializers" ("Warning: Could not find <asssembly_name>"). The warnings are also displayed in my local builds, but do not slow down the build. On Azure Devops, the build hangs for several minutes on the first warning. I notice that this step ("Processing module initializers") was not present in builds done with ILRepack version 2.0.34.2.

See below for the configration in ILRepack.targets that I am using.

<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="Repack" AfterTargets="Build" Condition="'$(Configuration)' == 'Release'">
        <ItemGroup>
            <InputAssemblies Include="$(OutputPath)\$(AssemblyName).dll" />
            <InputAssemblies Include="$(OutputPath)\library1.dll" />
            <InputAssemblies Include="$(OutputPath)\library2.dll" />
            <InputAssemblies Include="$(OutputPath)\library3.dll" />
            <InputAssemblies Include="$(OutputPath)\library4.dll" />
            <InputAssemblies Include="$(OutputPath)\library5.dll" />
            <InputAssemblies Include="$(OutputPath)\library6.dll" />
            <InputAssemblies Include="$(OutputPath)\library7.dll" />
        </ItemGroup>

        <ILRepack
            Parallel="true"
            Internalize="false"
            InputAssemblies="@(InputAssemblies)"
            LibraryPath="$(OutputPath)"
            TargetKind="Dll"
            OutputFile="$(OutputPath)\$(AssemblyName).dll"
        />
    </Target>
</Project>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions