.netlinuxnugetnuget-packageildasm

ildasm on Linux via nuget installation: ildasm executable not found


I installed ildasm on my Ubuntu 18.04 via

nuget install Microsoft.NETCore.ILDAsm

I somehow ended up with two directories:

/home/vagrant/.nuget/packages/microsoft.netcore.ildasm/2.0.8/
/home/vagrant/Microsoft.NETCore.ILDAsm.2.0.8/

but none of them contained any dll or exe:

vagrant@ubuntu1804:~/Microsoft.NETCore.ILDAsm.2.0.8$ ls
LICENSE.TXT  Microsoft.NETCore.ILDAsm.2.0.8.nupkg
Microsoft.NETCore.ILDAsm.nuspec  _rels  runtime.json  THIRD-PARTY-NOTICES.TXT  
version.txt

Where did nuget put the main application, i.e. the equivalent to the ildasm.exe on Windows?

Or am I doing something wrong to install ildasm on Linux?


Solution

  • Let's consider two ways to install ildasm.

    Using nuget-package

    dotnet --info
    
    # execution result
    ..
    Runtime Environment:
     OS Name:     ubuntu
     OS Version:  18.04
     OS Platform: Linux
     RID:         ubuntu.18.04-x64 # <----
    ..
    
    chmod +x ildasm
    sudo mv ildasm /usr/share/dotnet/shared/Microsoft.NETCore.App/{version}/
    
    ln -s /usr/share/dotnet/shared/Microsoft.NETCore.App/{version}/ildasm ildasm
    
    ./ildasm {path}/project.dll >> {path}/project.il
    

    The same steps are applicable for ilasm.

    Using dotnet-ildasm tool

    # install .net core runtime if required
    # sudo apt-get update; \
    #   sudo apt-get install -y apt-transport-https && \
    #   sudo apt-get update && \
    #   sudo apt-get install -y dotnet-runtime-3.0
    
    # find required tool
    dotnet tool search ildasm
    # output:
    # Package ID         Latest Version      Authors      Downloads      Verified
    # ---------------------------------------------------------------------------
    # dotnet-ildasm      0.12.2              pjbgf        100154                 
    # dotasm             1.0.1               DotAsm       434 
    
    # install tool
    dotnet tool install -g dotnet-ildasm
    

    Output IL to file:

    # go to project folder
    cd ../project/bin/Debug/netx.x
    
    dotnet ildasm program.dll -o program.il