UWP Compilation error with .net native compile option enabled : Internal compiler error: Specified cast is not valid

UWP Compilation error with .net native compile option enabled : Internal compiler error: Specified cast is not valid

我有一个 UWP 项目,其中构建在调试模式下工作,但在选择 .net 本机编译器的发布模式下构建失败。 UWP 项目有许多外部第三方库,如 RTSP client sharp、.net media foundation。 显示的错误是

"
1>  Processing application code
1>  Computing application closure and generating interop code
1>    Loading 84 modules...
"some warnings displayed....
C:\Users\kR\.nuget\packages\microsoft.net.native.compiler.2.8-rel-28605-00\tools\Microsoft.NetNative.targets(801,5): error : Internal compiler error: **Specified cast is not valid.**"

没有说哪里出错了

我在 Default.rd.xml 中尝试了各种值,但我无法摆脱这个错误,我认为这不是绕过错误的正确方法

尝试次数 1) 将动态键更改为 Public 或 PublicAndInternal 没有帮助。 2)当我删除时出现不同的错误 "Internal compiler error: Type 'MediaFoundation.Misc.PVMarshaler' was referenced in method 'IMFAttributes.GetItem(Guid, PropVariant)', but was not found necessary by analysis." 当我将动态密钥重新设置为 Required All 或 Public 或 Public Internal 时,这会消失 3)代码遍历:我做了一些基本的代码遍历。我假设它可能与某些转换有关,但是通过所有代码找出错误位置非常耗时。

我们需要在 windows 商店中使用我们的应用程序,因此我们无法取消选中 .net 本机编译器模式

问题) 1.如何获取错误位置:Internal compiler error: C:\Users\kR.nuget\packages\microsoft.net.native.compiler.2.8-rel-28605-00\tools\Microsoft.NetNative.targets(801,5): 错误:内部编译器错误:指定的转换无效。" 2. 关于问题出在哪里以及如何进行的任何线索? 3. 我可以用来忽略错误的任何设置,因为在禁用 .net 本机编译器后构建在发布模式下工作正常

使用任何将使用某些 DirectX API / windows API 和 p/invoke 的库都会发生此错误。 通常,在您的 UWP 项目中使用它们之前,请确保任何第三方库在空项目中以发布模式构建。它们可能有效,但 Microsoft store build 会抛出错误。

具体在我的项目中: 我认为当我添加媒体基础 .net 库作为参考时会出现问题 库路径:[link] sourceforge.net/projects/mfnet/files/mfnet (我将上面的项目迁移到 .net standard 2.0 以获得 UWP 支持) 所以替代方案是 1. 删除 MediaFoundation lib 2. 你不发布到 MS Store –

详情:见https://docs.microsoft.com/answers/questions/15463/uwp-compilation-error-with-net-native-compile-opti.html

中的评论