1

Guess ILRepack is not used so much any more now when Single-file deployment exist.The last releases from il-repack and ILRepack.Lib.MSBuild.Task is quite old.

But I have a problem with ILRepack that I need help with. My code:

TestILRepack.csproj:

<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net46</TargetFramework>
        <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="CommandLineParser" Version="2.9.1" />
        <PackageReference Include="ILRepack.MSBuild.Task" Version="2.0.13" />
    </ItemGroup>

    <Target Name="ILRepack" BeforeTargets="PostBuildEvent" >
        <ILRepack Verbose="true" OutputType="$(OutputType)" MainAssembly="$(AssemblyName).exe" OutputAssembly="$(AssemblyName).exe" InputAssemblies="$(OutDir)\*.dll" WilcardInputAssemblies="true" WorkingDirectory="$(OutDir)" />
    </Target>

</Project>

Program.cs:

using CommandLine;
using System;

namespace CoolTool
{
  public class Program
  {
    public class Options
    {
      [Option('v', "verbose", Required = false, HelpText = "(Type: switch). Option to display detailed log.")]
      public bool Verbose { get; set; }
    }

    public static void Main(string[] args)
    {
      var parser = new Parser
      (
        settings =>
        {
          settings.CaseSensitive = false;
          settings.AutoHelp = true;
          settings.HelpWriter = Parser.Default.Settings.HelpWriter;
        }
      );

      parser.ParseArguments<Options>(args).WithParsed
      (
        options =>
        {
          if (options.Verbose)
          {
            Console.WriteLine("Verbose");
          }
          else
          {
            Console.WriteLine("Silent");
          }

          if (args.Length == 0)
          {
            Console.WriteLine("No arguments specified. Try \'--help\' command.");
          }
        }
      )
      .WithNotParsed(options => { });
    }
  }
}

I get exception:

Error       Object reference not set to an instance of an object.
at ILRepacking.Steps.Win32Resources.PE.ImageWriter.CopySection(Section from, Section to)
at ILRepacking.Steps.Win32Resources.Win32ResourceStep.Patch(String outFile)
at ILRepacking.ILRepack.Repack()
at ILRepack.MSBuild.Task.ILRepack.Execute() TestILRepack    C:\\Users\\hakan.olsson\\Desktop\\TestILRepack\\TestILRepack.csproj 19

I am using VS Enterprise 2022 (64-bit) Version 17.7.5

What am I doing wrong?

I Expected a nice single file executable

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.