Skip to content

ILVerify - Packaged release seems to be missing embedded resources #38623

Closed

Description

@nattthebear

I installed the preview version of ILVerify, and it is giving me an error which seems to relate to its own compilation or packaging.

Description

I installed ilverify:

PS > dotnet tool install --global dotnet-ilverify --version 5.0.0-preview.8.20328.6 --add-source "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json"
You can invoke the tool using the following command: ilverify
Tool 'dotnet-ilverify' (version '5.0.0-preview.8.20328.6') was successfully installed.

Then, I invoked ilverify:

PS > ilverify .\BizInvokerModule.dll -r 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.3\*.dll' *.dll
[IL]: Error []: [C:\Develop\BizHawk\output\BizInvokerModule.dll : Bizhawk.BizInvokeProxyLibQuickNES::qn_setup_mappers()] ImportCalli not implemented
[IL]: Error []: [C:\Develop\BizHawk\output\BizInvokerModule.dll : Bizhawk.BizInvokeProxyLibQuickNES::qn_new()] ImportCalli not implemented
[IL]: Error []: [C:\Develop\BizHawk\output\BizInvokerModule.dll : Bizhawk.BizInvokeProxyLibQuickNES::qn_delete(native int)] ImportCalli not implemented
Error: System.Resources.MissingManifestResourceException: Could not find the resource "ILVerification.Strings.resources" among the resources "" embedded in the assembly "ILVerify", nor among the resources in any satellite assemblies for the specified culture. Perhaps the resources were embedded with an incorrect name.
   at System.Resources.ManifestBasedResourceGroveler.HandleResourceStreamMissing(String fileName)
   at System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet(CultureInfo culture, Dictionary`2 localResourceSets, Boolean tryParents, Boolean createIfNotExists)
   at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
   at System.Resources.ResourceManager.GetString(String name, CultureInfo culture)
   at ILVerify.Verifier.<>c__DisplayClass12_0.<VerifyMethod>b__2(ErrorArgument[] args, VerifierError code)
   at Internal.IL.ILImporter.VerificationError(VerifierError error, Object found)
   at Internal.IL.ILImporter.Check(Boolean cond, VerifierError error, StackValue found)
   at Internal.IL.ILImporter.CheckIsNumeric(StackValue value)
   at Internal.IL.ILImporter.ImportBasicBlock(BasicBlock basicBlock)
   at Internal.IL.ILImporter.ImportBasicBlocks()
   at Internal.IL.ILImporter.Verify()
   at ILVerify.Verifier.VerifyMethod(EcmaModule module, MethodIL methodIL, MethodDefinitionHandle methodHandle)
   at ILVerify.Verifier.VerifyMethods(EcmaModule module, IEnumerable`1 methodHandles)+MoveNext()
   at ILVerify.Verifier.Verify(PEReader peReader, MethodDefinitionHandle methodHandle)+MoveNext()
   at ILVerify.Program.VerifyMethods(PEReader peReader, EcmaModule module, String path, Int32& numErrors, Int32& verifiedMethodCounter, Int32& methodCounter)
   at ILVerify.Program.VerifyAssembly(PEReader peReader, EcmaModule module, String path)
   at ILVerify.Program.Run()
   at ILVerify.Program.Run(Options options)

Configuration

Looking at its runtimeconfig.json, I believe ilverify is running against the 3.1.3 runtime?

PS > dotnet --list-runtimes
Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.0.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.0-preview.6.20312.15 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.0-preview.6.20305.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.0.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 3.1.3 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.0-preview.6.20308.1 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Regression?

I've never used this tool before, so not sure.

Other information

I don't think the code I'm running ilverify against is relevant here, but I can try to make a minimum reproducing case out of it if needed.

Activity

  1. Dotnet-GitSync-Bot commented on Jun 30, 2020

    @Dotnet-GitSync-Bot
    Collaborator

    I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

  2. self-assigned this
    on Jun 30, 2020
  3. added a commit that references this issue on Jun 30, 2020
    4ac8e5a
  4. jkotas commented on Jun 30, 2020

    @jkotas
    Member

    Thank you for reporting this. #38630 has the fix.

  5. added a commit that references this issue on Jun 30, 2020
    ead30d9
  6. ghost locked as resolved and limited conversation to collaborators on Dec 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area-Tools-ILVerificationIssues related to ilverify tool and IL verification in generaluntriagedNew issue has not been triaged by the area owner

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions