System.IO.FileLoadException: Could not load file or assembly ... Could not find or load a specific file with .NET 9 preview package #714

Description

@boylec

This is a similar issue to #635 in that an assembly is not being loaded when running Mapster.Tool 8.4.1-pre-1, but the error message is slightly different.

In #635 there is a FileLoadException with "The system cannot find the file specified."

I was seeing this with a different assembly and fixed it using the recommendations from that issue.

Fast forward ->

Then I added System.Text.Json for .NET 9 preview (which targets .NET 8)

Now I'm getting a System.IO.FileLoadException with "Could not load file or assembly ... Could not find or load a specific file"

.csproj:

<PropertyGroup>
...
<TargetFramework>net8.0</TargetFramework>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
...
</PropertyGroup>
...
<PackageReference Include="System.Text.Json" Version="9.0.0-preview.5.24306.7" />
<PackageReference Include="Mapster" Version="7.4.1-pre01" />
...
<ItemGroup>
<Generated Include="$(ProjectDir)\**\*.g.cs" />
<GeneratedMappersFolder Include="_mappers" />
</ItemGroup>
<Target Name="Mapster" AfterTargets="AfterBuild">
<Exec WorkingDirectory="$(ProjectDir)" Command="dotnet tool restore" />
<Exec WorkingDirectory="$(ProjectDir)" Command="dotnet mapster extension -a &quot;$(TargetDir)$(ProjectName).dll&quot;" />
<Exec WorkingDirectory="$(ProjectDir)" Command="dotnet mapster mapper -a &quot;$(TargetDir)$(ProjectName).dll&quot; -o @(GeneratedMappersFolder)" />
<Message Text="GeneratedMappersFolder: @(GeneratedMappersFolder)" />
</Target>
<Target Name="CleanGenerated" BeforeTargets="AfterBuild">
<Delete Files="@(Generated)">
<Output TaskParameter="DeletedFiles" ItemName="FilesDeleted" />
</Delete>
<Message Text="Files deleted: @(Generated)" />
</Target>

dotnet-tools.json

 ...
"mapster.tool": {
"version": "8.4.1-pre01",
"commands": ["dotnet-mapster"],
"rollForward": false
}
...
}

stack trace:

System.IO.FileLoadException: Could not load file or assembly 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. Could not find or load a specific file. (0x80131621)
File name: 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
---> System.IO.FileLoadException: Could not load file or assembly 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)
at System.Reflection.Assembly.LoadFrom(String assemblyFile)
at System.Reflection.Assembly.LoadFromResolveHandler(Object sender, ResolveEventArgs args)
at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
at System.ModuleHandle.ResolveMethod(QCallModule module, Int32 methodToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount)
at System.ModuleHandle.ResolveMethodHandleInternal(RuntimeModule module, Int32 methodToken, ReadOnlySpan`1 typeInstantiationContext, ReadOnlySpan`1 methodInstantiationContext)
at System.ModuleHandle.ResolveMethodHandle(Int32 methodToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
at System.RuntimeType.GetMethodBase(RuntimeModule scope, Int32 typeMetadataToken)
at System.Reflection.RuntimeCustomAttributeData..ctor(RuntimeModule scope, MetadataToken caCtorToken, ConstArray& blob)
at System.Reflection.RuntimeCustomAttributeData.GetCustomAttributes(RuntimeModule module, Int32 tkTarget)
at Mapster.Utils.NullableExpressionVisitor.VisitMember(MemberExpression node) in C:\Projects\Mapster\src\Mapster\Utils\NullableExpressionVisitor.cs:line 130
at Mapster.Utils.NullableExpressionVisitor.Visit(Expression node) in C:\Projects\Mapster\src\Mapster\Utils\NullableExpressionVisitor.cs:line 50
at Mapster.Utils.ExpressionEx.CanBeNull(Expression exp) in C:\Projects\Mapster\src\Mapster\Utils\ExpressionEx.cs:line 261
at Mapster.Utils.ExpressionEx.ApplyNullPropagation(Expression getter) in C:\Projects\Mapster\src\Mapster\Utils\ExpressionEx.cs:line 317
at Mapster.Adapters.BaseClassAdapter.CreateClassConverter(Expression source, ClassModel classModel, CompileArgument arg, Expression destination) in C:\Projects\Mapster\src\Mapster\Adapters\BaseClassAdapter.cs:line 59
at Mapster.Adapters.ClassAdapter.CreateBlockExpression(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\ClassAdapter.cs:line 100
at Mapster.Adapters.BaseAdapter.CreateBlockExpressionBody(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 245
at Mapster.Adapters.BaseAdapter.CreateExpressionBody(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 123
at Mapster.Adapters.BaseAdapter.CreateAdaptFunc(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 28
at Mapster.TypeAdapterConfig.CreateMapExpression(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 427
--- End of inner exception stack trace ---
at Mapster.TypeAdapterConfig.CreateMapExpression(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 431
at Mapster.TypeAdapterConfig.CreateMapExpression(TypeTuple tuple, MapType mapType) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 396
at Mapster.Tool.Program.GenerateMappers(MapperOptions opt) in C:\Projects\Mapster\src\Mapster.Tool\Program.cs:line 63
at CommandLine.ParserResultExtensions.WithParsed[T](ParserResult`1 result, Action`1 action)
at Mapster.Tool.Program.Main(String[] args) in C:\Projects\Mapster\src\Mapster.Tool\Program.cs:line 19

This .dll can be found in my /bin/Debug/net8.0 folder at the time that I run Mapster.Tool.

I checked the assembly version on the generated .dll as well using powershell and everything matches for what the tool is trying to load (the assembly name, version, and public key)

Note: I censored absolute paths on my local hard drive with '...'

PS .../bin/Debug/net8.0> ([system.reflection.assembly]::load([System.IO.File]::ReadAllBytes(".../bin/Debug/net8.0/System.Text.Json.dll"))).FullName
System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51

Any ideas? I'm flummoxed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
       blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
      }
      } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
      })();
      (function(){
      try {
      var __m = "github.com";
      var __re = new RegExp('^' + "github\\.com" + '
      
      Skip to content

      System.IO.FileLoadException: Could not load file or assembly ... Could not find or load a specific file with .NET 9 preview package #714

      Description

      @boylec

      This is a similar issue to #635 in that an assembly is not being loaded when running Mapster.Tool 8.4.1-pre-1, but the error message is slightly different.

      In #635 there is a FileLoadException with "The system cannot find the file specified."

      I was seeing this with a different assembly and fixed it using the recommendations from that issue.

      Fast forward ->

      Then I added System.Text.Json for .NET 9 preview (which targets .NET 8)

      Now I'm getting a System.IO.FileLoadException with "Could not load file or assembly ... Could not find or load a specific file"

      .csproj:

      <PropertyGroup>
      ...
      <TargetFramework>net8.0</TargetFramework>
      <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
      ...
      </PropertyGroup>
      ...
      <PackageReference Include="System.Text.Json" Version="9.0.0-preview.5.24306.7" />
      <PackageReference Include="Mapster" Version="7.4.1-pre01" />
      ...
      <ItemGroup>
      <Generated Include="$(ProjectDir)\**\*.g.cs" />
      <GeneratedMappersFolder Include="_mappers" />
      </ItemGroup>
      <Target Name="Mapster" AfterTargets="AfterBuild">
      <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet tool restore" />
      <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet mapster extension -a &quot;$(TargetDir)$(ProjectName).dll&quot;" />
      <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet mapster mapper -a &quot;$(TargetDir)$(ProjectName).dll&quot; -o @(GeneratedMappersFolder)" />
      <Message Text="GeneratedMappersFolder: @(GeneratedMappersFolder)" />
      </Target>
      <Target Name="CleanGenerated" BeforeTargets="AfterBuild">
      <Delete Files="@(Generated)">
      <Output TaskParameter="DeletedFiles" ItemName="FilesDeleted" />
      </Delete>
      <Message Text="Files deleted: @(Generated)" />
      </Target>
      

      dotnet-tools.json

       ...
      "mapster.tool": {
      "version": "8.4.1-pre01",
      "commands": ["dotnet-mapster"],
      "rollForward": false
      }
      ...
      }
      

      stack trace:

      System.IO.FileLoadException: Could not load file or assembly 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. Could not find or load a specific file. (0x80131621)
      File name: 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
      ---> System.IO.FileLoadException: Could not load file or assembly 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
      at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)
      at System.Reflection.Assembly.LoadFrom(String assemblyFile)
      at System.Reflection.Assembly.LoadFromResolveHandler(Object sender, ResolveEventArgs args)
      at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
      at System.ModuleHandle.ResolveMethod(QCallModule module, Int32 methodToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount)
      at System.ModuleHandle.ResolveMethodHandleInternal(RuntimeModule module, Int32 methodToken, ReadOnlySpan`1 typeInstantiationContext, ReadOnlySpan`1 methodInstantiationContext)
      at System.ModuleHandle.ResolveMethodHandle(Int32 methodToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
      at System.RuntimeType.GetMethodBase(RuntimeModule scope, Int32 typeMetadataToken)
      at System.Reflection.RuntimeCustomAttributeData..ctor(RuntimeModule scope, MetadataToken caCtorToken, ConstArray& blob)
      at System.Reflection.RuntimeCustomAttributeData.GetCustomAttributes(RuntimeModule module, Int32 tkTarget)
      at Mapster.Utils.NullableExpressionVisitor.VisitMember(MemberExpression node) in C:\Projects\Mapster\src\Mapster\Utils\NullableExpressionVisitor.cs:line 130
      at Mapster.Utils.NullableExpressionVisitor.Visit(Expression node) in C:\Projects\Mapster\src\Mapster\Utils\NullableExpressionVisitor.cs:line 50
      at Mapster.Utils.ExpressionEx.CanBeNull(Expression exp) in C:\Projects\Mapster\src\Mapster\Utils\ExpressionEx.cs:line 261
      at Mapster.Utils.ExpressionEx.ApplyNullPropagation(Expression getter) in C:\Projects\Mapster\src\Mapster\Utils\ExpressionEx.cs:line 317
      at Mapster.Adapters.BaseClassAdapter.CreateClassConverter(Expression source, ClassModel classModel, CompileArgument arg, Expression destination) in C:\Projects\Mapster\src\Mapster\Adapters\BaseClassAdapter.cs:line 59
      at Mapster.Adapters.ClassAdapter.CreateBlockExpression(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\ClassAdapter.cs:line 100
      at Mapster.Adapters.BaseAdapter.CreateBlockExpressionBody(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 245
      at Mapster.Adapters.BaseAdapter.CreateExpressionBody(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 123
      at Mapster.Adapters.BaseAdapter.CreateAdaptFunc(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 28
      at Mapster.TypeAdapterConfig.CreateMapExpression(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 427
      --- End of inner exception stack trace ---
      at Mapster.TypeAdapterConfig.CreateMapExpression(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 431
      at Mapster.TypeAdapterConfig.CreateMapExpression(TypeTuple tuple, MapType mapType) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 396
      at Mapster.Tool.Program.GenerateMappers(MapperOptions opt) in C:\Projects\Mapster\src\Mapster.Tool\Program.cs:line 63
      at CommandLine.ParserResultExtensions.WithParsed[T](ParserResult`1 result, Action`1 action)
      at Mapster.Tool.Program.Main(String[] args) in C:\Projects\Mapster\src\Mapster.Tool\Program.cs:line 19
      

      This .dll can be found in my /bin/Debug/net8.0 folder at the time that I run Mapster.Tool.

      I checked the assembly version on the generated .dll as well using powershell and everything matches for what the tool is trying to load (the assembly name, version, and public key)

      Note: I censored absolute paths on my local hard drive with '...'

      PS .../bin/Debug/net8.0> ([system.reflection.assembly]::load([System.IO.File]::ReadAllBytes(".../bin/Debug/net8.0/System.Text.Json.dll"))).FullName
      System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51

      Any ideas? I'm flummoxed.

      Metadata

      Metadata

      Assignees

      No one assigned

        Labels

        No labels
        No labels

        Type

        No type

        Projects

        No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
          Skip to content

          System.IO.FileLoadException: Could not load file or assembly ... Could not find or load a specific file with .NET 9 preview package #714

          Description

          @boylec

          This is a similar issue to #635 in that an assembly is not being loaded when running Mapster.Tool 8.4.1-pre-1, but the error message is slightly different.

          In #635 there is a FileLoadException with "The system cannot find the file specified."

          I was seeing this with a different assembly and fixed it using the recommendations from that issue.

          Fast forward ->

          Then I added System.Text.Json for .NET 9 preview (which targets .NET 8)

          Now I'm getting a System.IO.FileLoadException with "Could not load file or assembly ... Could not find or load a specific file"

          .csproj:

          <PropertyGroup>
          ...
          <TargetFramework>net8.0</TargetFramework>
          <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
          ...
          </PropertyGroup>
          ...
          <PackageReference Include="System.Text.Json" Version="9.0.0-preview.5.24306.7" />
          <PackageReference Include="Mapster" Version="7.4.1-pre01" />
          ...
          <ItemGroup>
          <Generated Include="$(ProjectDir)\**\*.g.cs" />
          <GeneratedMappersFolder Include="_mappers" />
          </ItemGroup>
          <Target Name="Mapster" AfterTargets="AfterBuild">
          <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet tool restore" />
          <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet mapster extension -a &quot;$(TargetDir)$(ProjectName).dll&quot;" />
          <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet mapster mapper -a &quot;$(TargetDir)$(ProjectName).dll&quot; -o @(GeneratedMappersFolder)" />
          <Message Text="GeneratedMappersFolder: @(GeneratedMappersFolder)" />
          </Target>
          <Target Name="CleanGenerated" BeforeTargets="AfterBuild">
          <Delete Files="@(Generated)">
          <Output TaskParameter="DeletedFiles" ItemName="FilesDeleted" />
          </Delete>
          <Message Text="Files deleted: @(Generated)" />
          </Target>
          

          dotnet-tools.json

           ...
          "mapster.tool": {
          "version": "8.4.1-pre01",
          "commands": ["dotnet-mapster"],
          "rollForward": false
          }
          ...
          }
          

          stack trace:

          System.IO.FileLoadException: Could not load file or assembly 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. Could not find or load a specific file. (0x80131621)
          File name: 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
          ---> System.IO.FileLoadException: Could not load file or assembly 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
          at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)
          at System.Reflection.Assembly.LoadFrom(String assemblyFile)
          at System.Reflection.Assembly.LoadFromResolveHandler(Object sender, ResolveEventArgs args)
          at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
          at System.ModuleHandle.ResolveMethod(QCallModule module, Int32 methodToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount)
          at System.ModuleHandle.ResolveMethodHandleInternal(RuntimeModule module, Int32 methodToken, ReadOnlySpan`1 typeInstantiationContext, ReadOnlySpan`1 methodInstantiationContext)
          at System.ModuleHandle.ResolveMethodHandle(Int32 methodToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
          at System.RuntimeType.GetMethodBase(RuntimeModule scope, Int32 typeMetadataToken)
          at System.Reflection.RuntimeCustomAttributeData..ctor(RuntimeModule scope, MetadataToken caCtorToken, ConstArray& blob)
          at System.Reflection.RuntimeCustomAttributeData.GetCustomAttributes(RuntimeModule module, Int32 tkTarget)
          at Mapster.Utils.NullableExpressionVisitor.VisitMember(MemberExpression node) in C:\Projects\Mapster\src\Mapster\Utils\NullableExpressionVisitor.cs:line 130
          at Mapster.Utils.NullableExpressionVisitor.Visit(Expression node) in C:\Projects\Mapster\src\Mapster\Utils\NullableExpressionVisitor.cs:line 50
          at Mapster.Utils.ExpressionEx.CanBeNull(Expression exp) in C:\Projects\Mapster\src\Mapster\Utils\ExpressionEx.cs:line 261
          at Mapster.Utils.ExpressionEx.ApplyNullPropagation(Expression getter) in C:\Projects\Mapster\src\Mapster\Utils\ExpressionEx.cs:line 317
          at Mapster.Adapters.BaseClassAdapter.CreateClassConverter(Expression source, ClassModel classModel, CompileArgument arg, Expression destination) in C:\Projects\Mapster\src\Mapster\Adapters\BaseClassAdapter.cs:line 59
          at Mapster.Adapters.ClassAdapter.CreateBlockExpression(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\ClassAdapter.cs:line 100
          at Mapster.Adapters.BaseAdapter.CreateBlockExpressionBody(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 245
          at Mapster.Adapters.BaseAdapter.CreateExpressionBody(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 123
          at Mapster.Adapters.BaseAdapter.CreateAdaptFunc(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 28
          at Mapster.TypeAdapterConfig.CreateMapExpression(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 427
          --- End of inner exception stack trace ---
          at Mapster.TypeAdapterConfig.CreateMapExpression(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 431
          at Mapster.TypeAdapterConfig.CreateMapExpression(TypeTuple tuple, MapType mapType) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 396
          at Mapster.Tool.Program.GenerateMappers(MapperOptions opt) in C:\Projects\Mapster\src\Mapster.Tool\Program.cs:line 63
          at CommandLine.ParserResultExtensions.WithParsed[T](ParserResult`1 result, Action`1 action)
          at Mapster.Tool.Program.Main(String[] args) in C:\Projects\Mapster\src\Mapster.Tool\Program.cs:line 19
          

          This .dll can be found in my /bin/Debug/net8.0 folder at the time that I run Mapster.Tool.

          I checked the assembly version on the generated .dll as well using powershell and everything matches for what the tool is trying to load (the assembly name, version, and public key)

          Note: I censored absolute paths on my local hard drive with '...'

          PS .../bin/Debug/net8.0> ([system.reflection.assembly]::load([System.IO.File]::ReadAllBytes(".../bin/Debug/net8.0/System.Text.Json.dll"))).FullName
          System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51

          Any ideas? I'm flummoxed.

          Metadata

          Metadata

          Assignees

          No one assigned

            Labels

            No labels
            No labels

            Type

            No type

            Projects

            No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content

              System.IO.FileLoadException: Could not load file or assembly ... Could not find or load a specific file with .NET 9 preview package #714

              Description

              @boylec

              This is a similar issue to #635 in that an assembly is not being loaded when running Mapster.Tool 8.4.1-pre-1, but the error message is slightly different.

              In #635 there is a FileLoadException with "The system cannot find the file specified."

              I was seeing this with a different assembly and fixed it using the recommendations from that issue.

              Fast forward ->

              Then I added System.Text.Json for .NET 9 preview (which targets .NET 8)

              Now I'm getting a System.IO.FileLoadException with "Could not load file or assembly ... Could not find or load a specific file"

              .csproj:

              <PropertyGroup>
              ...
              <TargetFramework>net8.0</TargetFramework>
              <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
              ...
              </PropertyGroup>
              ...
              <PackageReference Include="System.Text.Json" Version="9.0.0-preview.5.24306.7" />
              <PackageReference Include="Mapster" Version="7.4.1-pre01" />
              ...
              <ItemGroup>
              <Generated Include="$(ProjectDir)\**\*.g.cs" />
              <GeneratedMappersFolder Include="_mappers" />
              </ItemGroup>
              <Target Name="Mapster" AfterTargets="AfterBuild">
              <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet tool restore" />
              <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet mapster extension -a &quot;$(TargetDir)$(ProjectName).dll&quot;" />
              <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet mapster mapper -a &quot;$(TargetDir)$(ProjectName).dll&quot; -o @(GeneratedMappersFolder)" />
              <Message Text="GeneratedMappersFolder: @(GeneratedMappersFolder)" />
              </Target>
              <Target Name="CleanGenerated" BeforeTargets="AfterBuild">
              <Delete Files="@(Generated)">
              <Output TaskParameter="DeletedFiles" ItemName="FilesDeleted" />
              </Delete>
              <Message Text="Files deleted: @(Generated)" />
              </Target>
              

              dotnet-tools.json

               ...
              "mapster.tool": {
              "version": "8.4.1-pre01",
              "commands": ["dotnet-mapster"],
              "rollForward": false
              }
              ...
              }
              

              stack trace:

              System.IO.FileLoadException: Could not load file or assembly 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. Could not find or load a specific file. (0x80131621)
              File name: 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
              ---> System.IO.FileLoadException: Could not load file or assembly 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
              at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)
              at System.Reflection.Assembly.LoadFrom(String assemblyFile)
              at System.Reflection.Assembly.LoadFromResolveHandler(Object sender, ResolveEventArgs args)
              at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
              at System.ModuleHandle.ResolveMethod(QCallModule module, Int32 methodToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount)
              at System.ModuleHandle.ResolveMethodHandleInternal(RuntimeModule module, Int32 methodToken, ReadOnlySpan`1 typeInstantiationContext, ReadOnlySpan`1 methodInstantiationContext)
              at System.ModuleHandle.ResolveMethodHandle(Int32 methodToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
              at System.RuntimeType.GetMethodBase(RuntimeModule scope, Int32 typeMetadataToken)
              at System.Reflection.RuntimeCustomAttributeData..ctor(RuntimeModule scope, MetadataToken caCtorToken, ConstArray& blob)
              at System.Reflection.RuntimeCustomAttributeData.GetCustomAttributes(RuntimeModule module, Int32 tkTarget)
              at Mapster.Utils.NullableExpressionVisitor.VisitMember(MemberExpression node) in C:\Projects\Mapster\src\Mapster\Utils\NullableExpressionVisitor.cs:line 130
              at Mapster.Utils.NullableExpressionVisitor.Visit(Expression node) in C:\Projects\Mapster\src\Mapster\Utils\NullableExpressionVisitor.cs:line 50
              at Mapster.Utils.ExpressionEx.CanBeNull(Expression exp) in C:\Projects\Mapster\src\Mapster\Utils\ExpressionEx.cs:line 261
              at Mapster.Utils.ExpressionEx.ApplyNullPropagation(Expression getter) in C:\Projects\Mapster\src\Mapster\Utils\ExpressionEx.cs:line 317
              at Mapster.Adapters.BaseClassAdapter.CreateClassConverter(Expression source, ClassModel classModel, CompileArgument arg, Expression destination) in C:\Projects\Mapster\src\Mapster\Adapters\BaseClassAdapter.cs:line 59
              at Mapster.Adapters.ClassAdapter.CreateBlockExpression(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\ClassAdapter.cs:line 100
              at Mapster.Adapters.BaseAdapter.CreateBlockExpressionBody(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 245
              at Mapster.Adapters.BaseAdapter.CreateExpressionBody(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 123
              at Mapster.Adapters.BaseAdapter.CreateAdaptFunc(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 28
              at Mapster.TypeAdapterConfig.CreateMapExpression(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 427
              --- End of inner exception stack trace ---
              at Mapster.TypeAdapterConfig.CreateMapExpression(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 431
              at Mapster.TypeAdapterConfig.CreateMapExpression(TypeTuple tuple, MapType mapType) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 396
              at Mapster.Tool.Program.GenerateMappers(MapperOptions opt) in C:\Projects\Mapster\src\Mapster.Tool\Program.cs:line 63
              at CommandLine.ParserResultExtensions.WithParsed[T](ParserResult`1 result, Action`1 action)
              at Mapster.Tool.Program.Main(String[] args) in C:\Projects\Mapster\src\Mapster.Tool\Program.cs:line 19
              

              This .dll can be found in my /bin/Debug/net8.0 folder at the time that I run Mapster.Tool.

              I checked the assembly version on the generated .dll as well using powershell and everything matches for what the tool is trying to load (the assembly name, version, and public key)

              Note: I censored absolute paths on my local hard drive with '...'

              PS .../bin/Debug/net8.0> ([system.reflection.assembly]::load([System.IO.File]::ReadAllBytes(".../bin/Debug/net8.0/System.Text.Json.dll"))).FullName
              System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51

              Any ideas? I'm flummoxed.

              Metadata

              Metadata

              Assignees

              No one assigned

                Labels

                No labels
                No labels

                Type

                No type

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions

                  , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
                  Skip to content

                  System.IO.FileLoadException: Could not load file or assembly ... Could not find or load a specific file with .NET 9 preview package #714

                  Description

                  @boylec

                  This is a similar issue to #635 in that an assembly is not being loaded when running Mapster.Tool 8.4.1-pre-1, but the error message is slightly different.

                  In #635 there is a FileLoadException with "The system cannot find the file specified."

                  I was seeing this with a different assembly and fixed it using the recommendations from that issue.

                  Fast forward ->

                  Then I added System.Text.Json for .NET 9 preview (which targets .NET 8)

                  Now I'm getting a System.IO.FileLoadException with "Could not load file or assembly ... Could not find or load a specific file"

                  .csproj:

                  <PropertyGroup>
                  ...
                  <TargetFramework>net8.0</TargetFramework>
                  <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
                  ...
                  </PropertyGroup>
                  ...
                  <PackageReference Include="System.Text.Json" Version="9.0.0-preview.5.24306.7" />
                  <PackageReference Include="Mapster" Version="7.4.1-pre01" />
                  ...
                  <ItemGroup>
                  <Generated Include="$(ProjectDir)\**\*.g.cs" />
                  <GeneratedMappersFolder Include="_mappers" />
                  </ItemGroup>
                  <Target Name="Mapster" AfterTargets="AfterBuild">
                  <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet tool restore" />
                  <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet mapster extension -a &quot;$(TargetDir)$(ProjectName).dll&quot;" />
                  <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet mapster mapper -a &quot;$(TargetDir)$(ProjectName).dll&quot; -o @(GeneratedMappersFolder)" />
                  <Message Text="GeneratedMappersFolder: @(GeneratedMappersFolder)" />
                  </Target>
                  <Target Name="CleanGenerated" BeforeTargets="AfterBuild">
                  <Delete Files="@(Generated)">
                  <Output TaskParameter="DeletedFiles" ItemName="FilesDeleted" />
                  </Delete>
                  <Message Text="Files deleted: @(Generated)" />
                  </Target>
                  

                  dotnet-tools.json

                   ...
                  "mapster.tool": {
                  "version": "8.4.1-pre01",
                  "commands": ["dotnet-mapster"],
                  "rollForward": false
                  }
                  ...
                  }
                  

                  stack trace:

                  System.IO.FileLoadException: Could not load file or assembly 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. Could not find or load a specific file. (0x80131621)
                  File name: 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
                  ---> System.IO.FileLoadException: Could not load file or assembly 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
                  at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)
                  at System.Reflection.Assembly.LoadFrom(String assemblyFile)
                  at System.Reflection.Assembly.LoadFromResolveHandler(Object sender, ResolveEventArgs args)
                  at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
                  at System.ModuleHandle.ResolveMethod(QCallModule module, Int32 methodToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount)
                  at System.ModuleHandle.ResolveMethodHandleInternal(RuntimeModule module, Int32 methodToken, ReadOnlySpan`1 typeInstantiationContext, ReadOnlySpan`1 methodInstantiationContext)
                  at System.ModuleHandle.ResolveMethodHandle(Int32 methodToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
                  at System.RuntimeType.GetMethodBase(RuntimeModule scope, Int32 typeMetadataToken)
                  at System.Reflection.RuntimeCustomAttributeData..ctor(RuntimeModule scope, MetadataToken caCtorToken, ConstArray& blob)
                  at System.Reflection.RuntimeCustomAttributeData.GetCustomAttributes(RuntimeModule module, Int32 tkTarget)
                  at Mapster.Utils.NullableExpressionVisitor.VisitMember(MemberExpression node) in C:\Projects\Mapster\src\Mapster\Utils\NullableExpressionVisitor.cs:line 130
                  at Mapster.Utils.NullableExpressionVisitor.Visit(Expression node) in C:\Projects\Mapster\src\Mapster\Utils\NullableExpressionVisitor.cs:line 50
                  at Mapster.Utils.ExpressionEx.CanBeNull(Expression exp) in C:\Projects\Mapster\src\Mapster\Utils\ExpressionEx.cs:line 261
                  at Mapster.Utils.ExpressionEx.ApplyNullPropagation(Expression getter) in C:\Projects\Mapster\src\Mapster\Utils\ExpressionEx.cs:line 317
                  at Mapster.Adapters.BaseClassAdapter.CreateClassConverter(Expression source, ClassModel classModel, CompileArgument arg, Expression destination) in C:\Projects\Mapster\src\Mapster\Adapters\BaseClassAdapter.cs:line 59
                  at Mapster.Adapters.ClassAdapter.CreateBlockExpression(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\ClassAdapter.cs:line 100
                  at Mapster.Adapters.BaseAdapter.CreateBlockExpressionBody(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 245
                  at Mapster.Adapters.BaseAdapter.CreateExpressionBody(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 123
                  at Mapster.Adapters.BaseAdapter.CreateAdaptFunc(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 28
                  at Mapster.TypeAdapterConfig.CreateMapExpression(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 427
                  --- End of inner exception stack trace ---
                  at Mapster.TypeAdapterConfig.CreateMapExpression(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 431
                  at Mapster.TypeAdapterConfig.CreateMapExpression(TypeTuple tuple, MapType mapType) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 396
                  at Mapster.Tool.Program.GenerateMappers(MapperOptions opt) in C:\Projects\Mapster\src\Mapster.Tool\Program.cs:line 63
                  at CommandLine.ParserResultExtensions.WithParsed[T](ParserResult`1 result, Action`1 action)
                  at Mapster.Tool.Program.Main(String[] args) in C:\Projects\Mapster\src\Mapster.Tool\Program.cs:line 19
                  

                  This .dll can be found in my /bin/Debug/net8.0 folder at the time that I run Mapster.Tool.

                  I checked the assembly version on the generated .dll as well using powershell and everything matches for what the tool is trying to load (the assembly name, version, and public key)

                  Note: I censored absolute paths on my local hard drive with '...'

                  PS .../bin/Debug/net8.0> ([system.reflection.assembly]::load([System.IO.File]::ReadAllBytes(".../bin/Debug/net8.0/System.Text.Json.dll"))).FullName
                  System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51

                  Any ideas? I'm flummoxed.

                  Metadata

                  Metadata

                  Assignees

                  No one assigned

                    Labels

                    No labels
                    No labels

                    Type

                    No type

                    Projects

                    No projects

                      Milestone

                      No milestone

                      Relationships

                      None yet

                      Development

                      No branches or pull requests

                      Issue actions

                      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                      Skip to content

                      System.IO.FileLoadException: Could not load file or assembly ... Could not find or load a specific file with .NET 9 preview package #714

                      Description

                      @boylec

                      This is a similar issue to #635 in that an assembly is not being loaded when running Mapster.Tool 8.4.1-pre-1, but the error message is slightly different.

                      In #635 there is a FileLoadException with "The system cannot find the file specified."

                      I was seeing this with a different assembly and fixed it using the recommendations from that issue.

                      Fast forward ->

                      Then I added System.Text.Json for .NET 9 preview (which targets .NET 8)

                      Now I'm getting a System.IO.FileLoadException with "Could not load file or assembly ... Could not find or load a specific file"

                      .csproj:

                      <PropertyGroup>
                      ...
                      <TargetFramework>net8.0</TargetFramework>
                      <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
                      ...
                      </PropertyGroup>
                      ...
                      <PackageReference Include="System.Text.Json" Version="9.0.0-preview.5.24306.7" />
                      <PackageReference Include="Mapster" Version="7.4.1-pre01" />
                      ...
                      <ItemGroup>
                      <Generated Include="$(ProjectDir)\**\*.g.cs" />
                      <GeneratedMappersFolder Include="_mappers" />
                      </ItemGroup>
                      <Target Name="Mapster" AfterTargets="AfterBuild">
                      <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet tool restore" />
                      <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet mapster extension -a &quot;$(TargetDir)$(ProjectName).dll&quot;" />
                      <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet mapster mapper -a &quot;$(TargetDir)$(ProjectName).dll&quot; -o @(GeneratedMappersFolder)" />
                      <Message Text="GeneratedMappersFolder: @(GeneratedMappersFolder)" />
                      </Target>
                      <Target Name="CleanGenerated" BeforeTargets="AfterBuild">
                      <Delete Files="@(Generated)">
                      <Output TaskParameter="DeletedFiles" ItemName="FilesDeleted" />
                      </Delete>
                      <Message Text="Files deleted: @(Generated)" />
                      </Target>
                      

                      dotnet-tools.json

                       ...
                      "mapster.tool": {
                      "version": "8.4.1-pre01",
                      "commands": ["dotnet-mapster"],
                      "rollForward": false
                      }
                      ...
                      }
                      

                      stack trace:

                      System.IO.FileLoadException: Could not load file or assembly 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. Could not find or load a specific file. (0x80131621)
                      File name: 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
                      ---> System.IO.FileLoadException: Could not load file or assembly 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
                      at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)
                      at System.Reflection.Assembly.LoadFrom(String assemblyFile)
                      at System.Reflection.Assembly.LoadFromResolveHandler(Object sender, ResolveEventArgs args)
                      at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
                      at System.ModuleHandle.ResolveMethod(QCallModule module, Int32 methodToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount)
                      at System.ModuleHandle.ResolveMethodHandleInternal(RuntimeModule module, Int32 methodToken, ReadOnlySpan`1 typeInstantiationContext, ReadOnlySpan`1 methodInstantiationContext)
                      at System.ModuleHandle.ResolveMethodHandle(Int32 methodToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
                      at System.RuntimeType.GetMethodBase(RuntimeModule scope, Int32 typeMetadataToken)
                      at System.Reflection.RuntimeCustomAttributeData..ctor(RuntimeModule scope, MetadataToken caCtorToken, ConstArray& blob)
                      at System.Reflection.RuntimeCustomAttributeData.GetCustomAttributes(RuntimeModule module, Int32 tkTarget)
                      at Mapster.Utils.NullableExpressionVisitor.VisitMember(MemberExpression node) in C:\Projects\Mapster\src\Mapster\Utils\NullableExpressionVisitor.cs:line 130
                      at Mapster.Utils.NullableExpressionVisitor.Visit(Expression node) in C:\Projects\Mapster\src\Mapster\Utils\NullableExpressionVisitor.cs:line 50
                      at Mapster.Utils.ExpressionEx.CanBeNull(Expression exp) in C:\Projects\Mapster\src\Mapster\Utils\ExpressionEx.cs:line 261
                      at Mapster.Utils.ExpressionEx.ApplyNullPropagation(Expression getter) in C:\Projects\Mapster\src\Mapster\Utils\ExpressionEx.cs:line 317
                      at Mapster.Adapters.BaseClassAdapter.CreateClassConverter(Expression source, ClassModel classModel, CompileArgument arg, Expression destination) in C:\Projects\Mapster\src\Mapster\Adapters\BaseClassAdapter.cs:line 59
                      at Mapster.Adapters.ClassAdapter.CreateBlockExpression(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\ClassAdapter.cs:line 100
                      at Mapster.Adapters.BaseAdapter.CreateBlockExpressionBody(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 245
                      at Mapster.Adapters.BaseAdapter.CreateExpressionBody(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 123
                      at Mapster.Adapters.BaseAdapter.CreateAdaptFunc(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 28
                      at Mapster.TypeAdapterConfig.CreateMapExpression(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 427
                      --- End of inner exception stack trace ---
                      at Mapster.TypeAdapterConfig.CreateMapExpression(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 431
                      at Mapster.TypeAdapterConfig.CreateMapExpression(TypeTuple tuple, MapType mapType) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 396
                      at Mapster.Tool.Program.GenerateMappers(MapperOptions opt) in C:\Projects\Mapster\src\Mapster.Tool\Program.cs:line 63
                      at CommandLine.ParserResultExtensions.WithParsed[T](ParserResult`1 result, Action`1 action)
                      at Mapster.Tool.Program.Main(String[] args) in C:\Projects\Mapster\src\Mapster.Tool\Program.cs:line 19
                      

                      This .dll can be found in my /bin/Debug/net8.0 folder at the time that I run Mapster.Tool.

                      I checked the assembly version on the generated .dll as well using powershell and everything matches for what the tool is trying to load (the assembly name, version, and public key)

                      Note: I censored absolute paths on my local hard drive with '...'

                      PS .../bin/Debug/net8.0> ([system.reflection.assembly]::load([System.IO.File]::ReadAllBytes(".../bin/Debug/net8.0/System.Text.Json.dll"))).FullName
                      System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51

                      Any ideas? I'm flummoxed.

                      Metadata

                      Metadata

                      Assignees

                      No one assigned

                        Labels

                        No labels
                        No labels

                        Type

                        No type

                        Projects

                        No projects

                          Milestone

                          No milestone

                          Relationships

                          None yet

                          Development

                          No branches or pull requests

                          Issue actions

                          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                          Skip to content

                          System.IO.FileLoadException: Could not load file or assembly ... Could not find or load a specific file with .NET 9 preview package #714

                          Description

                          @boylec

                          This is a similar issue to #635 in that an assembly is not being loaded when running Mapster.Tool 8.4.1-pre-1, but the error message is slightly different.

                          In #635 there is a FileLoadException with "The system cannot find the file specified."

                          I was seeing this with a different assembly and fixed it using the recommendations from that issue.

                          Fast forward ->

                          Then I added System.Text.Json for .NET 9 preview (which targets .NET 8)

                          Now I'm getting a System.IO.FileLoadException with "Could not load file or assembly ... Could not find or load a specific file"

                          .csproj:

                          <PropertyGroup>
                          ...
                          <TargetFramework>net8.0</TargetFramework>
                          <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
                          ...
                          </PropertyGroup>
                          ...
                          <PackageReference Include="System.Text.Json" Version="9.0.0-preview.5.24306.7" />
                          <PackageReference Include="Mapster" Version="7.4.1-pre01" />
                          ...
                          <ItemGroup>
                          <Generated Include="$(ProjectDir)\**\*.g.cs" />
                          <GeneratedMappersFolder Include="_mappers" />
                          </ItemGroup>
                          <Target Name="Mapster" AfterTargets="AfterBuild">
                          <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet tool restore" />
                          <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet mapster extension -a &quot;$(TargetDir)$(ProjectName).dll&quot;" />
                          <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet mapster mapper -a &quot;$(TargetDir)$(ProjectName).dll&quot; -o @(GeneratedMappersFolder)" />
                          <Message Text="GeneratedMappersFolder: @(GeneratedMappersFolder)" />
                          </Target>
                          <Target Name="CleanGenerated" BeforeTargets="AfterBuild">
                          <Delete Files="@(Generated)">
                          <Output TaskParameter="DeletedFiles" ItemName="FilesDeleted" />
                          </Delete>
                          <Message Text="Files deleted: @(Generated)" />
                          </Target>
                          

                          dotnet-tools.json

                           ...
                          "mapster.tool": {
                          "version": "8.4.1-pre01",
                          "commands": ["dotnet-mapster"],
                          "rollForward": false
                          }
                          ...
                          }
                          

                          stack trace:

                          System.IO.FileLoadException: Could not load file or assembly 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. Could not find or load a specific file. (0x80131621)
                          File name: 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
                          ---> System.IO.FileLoadException: Could not load file or assembly 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
                          at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)
                          at System.Reflection.Assembly.LoadFrom(String assemblyFile)
                          at System.Reflection.Assembly.LoadFromResolveHandler(Object sender, ResolveEventArgs args)
                          at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
                          at System.ModuleHandle.ResolveMethod(QCallModule module, Int32 methodToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount)
                          at System.ModuleHandle.ResolveMethodHandleInternal(RuntimeModule module, Int32 methodToken, ReadOnlySpan`1 typeInstantiationContext, ReadOnlySpan`1 methodInstantiationContext)
                          at System.ModuleHandle.ResolveMethodHandle(Int32 methodToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
                          at System.RuntimeType.GetMethodBase(RuntimeModule scope, Int32 typeMetadataToken)
                          at System.Reflection.RuntimeCustomAttributeData..ctor(RuntimeModule scope, MetadataToken caCtorToken, ConstArray& blob)
                          at System.Reflection.RuntimeCustomAttributeData.GetCustomAttributes(RuntimeModule module, Int32 tkTarget)
                          at Mapster.Utils.NullableExpressionVisitor.VisitMember(MemberExpression node) in C:\Projects\Mapster\src\Mapster\Utils\NullableExpressionVisitor.cs:line 130
                          at Mapster.Utils.NullableExpressionVisitor.Visit(Expression node) in C:\Projects\Mapster\src\Mapster\Utils\NullableExpressionVisitor.cs:line 50
                          at Mapster.Utils.ExpressionEx.CanBeNull(Expression exp) in C:\Projects\Mapster\src\Mapster\Utils\ExpressionEx.cs:line 261
                          at Mapster.Utils.ExpressionEx.ApplyNullPropagation(Expression getter) in C:\Projects\Mapster\src\Mapster\Utils\ExpressionEx.cs:line 317
                          at Mapster.Adapters.BaseClassAdapter.CreateClassConverter(Expression source, ClassModel classModel, CompileArgument arg, Expression destination) in C:\Projects\Mapster\src\Mapster\Adapters\BaseClassAdapter.cs:line 59
                          at Mapster.Adapters.ClassAdapter.CreateBlockExpression(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\ClassAdapter.cs:line 100
                          at Mapster.Adapters.BaseAdapter.CreateBlockExpressionBody(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 245
                          at Mapster.Adapters.BaseAdapter.CreateExpressionBody(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 123
                          at Mapster.Adapters.BaseAdapter.CreateAdaptFunc(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 28
                          at Mapster.TypeAdapterConfig.CreateMapExpression(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 427
                          --- End of inner exception stack trace ---
                          at Mapster.TypeAdapterConfig.CreateMapExpression(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 431
                          at Mapster.TypeAdapterConfig.CreateMapExpression(TypeTuple tuple, MapType mapType) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 396
                          at Mapster.Tool.Program.GenerateMappers(MapperOptions opt) in C:\Projects\Mapster\src\Mapster.Tool\Program.cs:line 63
                          at CommandLine.ParserResultExtensions.WithParsed[T](ParserResult`1 result, Action`1 action)
                          at Mapster.Tool.Program.Main(String[] args) in C:\Projects\Mapster\src\Mapster.Tool\Program.cs:line 19
                          

                          This .dll can be found in my /bin/Debug/net8.0 folder at the time that I run Mapster.Tool.

                          I checked the assembly version on the generated .dll as well using powershell and everything matches for what the tool is trying to load (the assembly name, version, and public key)

                          Note: I censored absolute paths on my local hard drive with '...'

                          PS .../bin/Debug/net8.0> ([system.reflection.assembly]::load([System.IO.File]::ReadAllBytes(".../bin/Debug/net8.0/System.Text.Json.dll"))).FullName
                          System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51

                          Any ideas? I'm flummoxed.

                          Metadata

                          Metadata

                          Assignees

                          No one assigned

                            Labels

                            No labels
                            No labels

                            Type

                            No type

                            Projects

                            No projects

                              Milestone

                              No milestone

                              Relationships

                              None yet

                              Development

                              No branches or pull requests

                              Issue actions

                              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                              Skip to content

                              System.IO.FileLoadException: Could not load file or assembly ... Could not find or load a specific file with .NET 9 preview package #714

                              Description

                              @boylec

                              This is a similar issue to #635 in that an assembly is not being loaded when running Mapster.Tool 8.4.1-pre-1, but the error message is slightly different.

                              In #635 there is a FileLoadException with "The system cannot find the file specified."

                              I was seeing this with a different assembly and fixed it using the recommendations from that issue.

                              Fast forward ->

                              Then I added System.Text.Json for .NET 9 preview (which targets .NET 8)

                              Now I'm getting a System.IO.FileLoadException with "Could not load file or assembly ... Could not find or load a specific file"

                              .csproj:

                              <PropertyGroup>
                              ...
                              <TargetFramework>net8.0</TargetFramework>
                              <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
                              ...
                              </PropertyGroup>
                              ...
                              <PackageReference Include="System.Text.Json" Version="9.0.0-preview.5.24306.7" />
                              <PackageReference Include="Mapster" Version="7.4.1-pre01" />
                              ...
                              <ItemGroup>
                              <Generated Include="$(ProjectDir)\**\*.g.cs" />
                              <GeneratedMappersFolder Include="_mappers" />
                              </ItemGroup>
                              <Target Name="Mapster" AfterTargets="AfterBuild">
                              <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet tool restore" />
                              <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet mapster extension -a &quot;$(TargetDir)$(ProjectName).dll&quot;" />
                              <Exec WorkingDirectory="$(ProjectDir)" Command="dotnet mapster mapper -a &quot;$(TargetDir)$(ProjectName).dll&quot; -o @(GeneratedMappersFolder)" />
                              <Message Text="GeneratedMappersFolder: @(GeneratedMappersFolder)" />
                              </Target>
                              <Target Name="CleanGenerated" BeforeTargets="AfterBuild">
                              <Delete Files="@(Generated)">
                              <Output TaskParameter="DeletedFiles" ItemName="FilesDeleted" />
                              </Delete>
                              <Message Text="Files deleted: @(Generated)" />
                              </Target>
                              

                              dotnet-tools.json

                               ...
                              "mapster.tool": {
                              "version": "8.4.1-pre01",
                              "commands": ["dotnet-mapster"],
                              "rollForward": false
                              }
                              ...
                              }
                              

                              stack trace:

                              System.IO.FileLoadException: Could not load file or assembly 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. Could not find or load a specific file. (0x80131621)
                              File name: 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
                              ---> System.IO.FileLoadException: Could not load file or assembly 'System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
                              at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)
                              at System.Reflection.Assembly.LoadFrom(String assemblyFile)
                              at System.Reflection.Assembly.LoadFromResolveHandler(Object sender, ResolveEventArgs args)
                              at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
                              at System.ModuleHandle.ResolveMethod(QCallModule module, Int32 methodToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount)
                              at System.ModuleHandle.ResolveMethodHandleInternal(RuntimeModule module, Int32 methodToken, ReadOnlySpan`1 typeInstantiationContext, ReadOnlySpan`1 methodInstantiationContext)
                              at System.ModuleHandle.ResolveMethodHandle(Int32 methodToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
                              at System.RuntimeType.GetMethodBase(RuntimeModule scope, Int32 typeMetadataToken)
                              at System.Reflection.RuntimeCustomAttributeData..ctor(RuntimeModule scope, MetadataToken caCtorToken, ConstArray& blob)
                              at System.Reflection.RuntimeCustomAttributeData.GetCustomAttributes(RuntimeModule module, Int32 tkTarget)
                              at Mapster.Utils.NullableExpressionVisitor.VisitMember(MemberExpression node) in C:\Projects\Mapster\src\Mapster\Utils\NullableExpressionVisitor.cs:line 130
                              at Mapster.Utils.NullableExpressionVisitor.Visit(Expression node) in C:\Projects\Mapster\src\Mapster\Utils\NullableExpressionVisitor.cs:line 50
                              at Mapster.Utils.ExpressionEx.CanBeNull(Expression exp) in C:\Projects\Mapster\src\Mapster\Utils\ExpressionEx.cs:line 261
                              at Mapster.Utils.ExpressionEx.ApplyNullPropagation(Expression getter) in C:\Projects\Mapster\src\Mapster\Utils\ExpressionEx.cs:line 317
                              at Mapster.Adapters.BaseClassAdapter.CreateClassConverter(Expression source, ClassModel classModel, CompileArgument arg, Expression destination) in C:\Projects\Mapster\src\Mapster\Adapters\BaseClassAdapter.cs:line 59
                              at Mapster.Adapters.ClassAdapter.CreateBlockExpression(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\ClassAdapter.cs:line 100
                              at Mapster.Adapters.BaseAdapter.CreateBlockExpressionBody(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 245
                              at Mapster.Adapters.BaseAdapter.CreateExpressionBody(Expression source, Expression destination, CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 123
                              at Mapster.Adapters.BaseAdapter.CreateAdaptFunc(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\Adapters\BaseAdapter.cs:line 28
                              at Mapster.TypeAdapterConfig.CreateMapExpression(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 427
                              --- End of inner exception stack trace ---
                              at Mapster.TypeAdapterConfig.CreateMapExpression(CompileArgument arg) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 431
                              at Mapster.TypeAdapterConfig.CreateMapExpression(TypeTuple tuple, MapType mapType) in C:\Projects\Mapster\src\Mapster\TypeAdapterConfig.cs:line 396
                              at Mapster.Tool.Program.GenerateMappers(MapperOptions opt) in C:\Projects\Mapster\src\Mapster.Tool\Program.cs:line 63
                              at CommandLine.ParserResultExtensions.WithParsed[T](ParserResult`1 result, Action`1 action)
                              at Mapster.Tool.Program.Main(String[] args) in C:\Projects\Mapster\src\Mapster.Tool\Program.cs:line 19
                              

                              This .dll can be found in my /bin/Debug/net8.0 folder at the time that I run Mapster.Tool.

                              I checked the assembly version on the generated .dll as well using powershell and everything matches for what the tool is trying to load (the assembly name, version, and public key)

                              Note: I censored absolute paths on my local hard drive with '...'

                              PS .../bin/Debug/net8.0> ([system.reflection.assembly]::load([System.IO.File]::ReadAllBytes(".../bin/Debug/net8.0/System.Text.Json.dll"))).FullName
                              System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51

                              Any ideas? I'm flummoxed.

                              Metadata

                              Metadata

                              Assignees

                              No one assigned

                                Labels

                                No labels
                                No labels

                                Type

                                No type

                                Projects

                                No projects

                                  Milestone

                                  No milestone

                                  Relationships

                                  None yet

                                  Development

                                  No branches or pull requests

                                  Issue actions