C# CodeDom System.TypeLoadException XamMac2 Xamarin macOS
C# CodeDom System.TypeLoadException XamMac2 Xamarin macOS
我正在编写一个复杂的应用程序,它使用 CodeDom 通过反射来实例化对象。但是,它混合在 netstandard2.0(也支持 net461 的包装器)和 net461 项目之间。
据我所知,很有可能参考了以前版本的框架,本例如下:
{System.TypeLoadException: Could not resolve type with token 01000067 from typeref (expected class 'System.CodeDom.Compiler.CompilerParameters' in assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
忽略为 Xamarin Mac 可执行文件加载到内存中的系统引用。
不合适的是寻找可能被 Xamarin 系统程序集覆盖的系统程序集的代码。
你知道解决这个问题的方法吗?除了将剩余的一组项目完全迁移到 netstandard2.0 和 net461 之间的混合。
谢谢。
确实如此。
打包在 System.dll 中的 System.CodeDom 程序集与要构建的项目必须引用的程序集不匹配。
通过将 netstandard2.0 与 net461 设置为目标解决了这个问题。
<PropertyGroup>
<TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
</PropertyGroup>
像这样。
我正在编写一个复杂的应用程序,它使用 CodeDom 通过反射来实例化对象。但是,它混合在 netstandard2.0(也支持 net461 的包装器)和 net461 项目之间。
据我所知,很有可能参考了以前版本的框架,本例如下:
{System.TypeLoadException: Could not resolve type with token 01000067 from typeref (expected class 'System.CodeDom.Compiler.CompilerParameters' in assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
忽略为 Xamarin Mac 可执行文件加载到内存中的系统引用。
不合适的是寻找可能被 Xamarin 系统程序集覆盖的系统程序集的代码。
你知道解决这个问题的方法吗?除了将剩余的一组项目完全迁移到 netstandard2.0 和 net461 之间的混合。
谢谢。
确实如此。
打包在 System.dll 中的 System.CodeDom 程序集与要构建的项目必须引用的程序集不匹配。
通过将 netstandard2.0 与 net461 设置为目标解决了这个问题。
<PropertyGroup>
<TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
</PropertyGroup>
像这样。