首页 > 解决方案 > 启用 .net 本机编译选项的 UWP 编译错误:内部编译器错误:指定的转换无效

问题描述

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

"
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.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)当我删除我得到不同的错误“内部编译器错误:方法'IMFAttributes.GetItem(Guid,PropVariant)'中引用了类型'MediaFoundation.Misc.PVMarshaler',但分析发现没有必要。” 当我将动态密钥重新设置为Required All 或Public 或Public Internal 3)代码遍历:我做了一些基本的代码遍历。我认为它可能与某些演员表有关,但是通过所有代码来找出错误的位置非常耗时。

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

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

标签: c#.netuwp.net-native

解决方案


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

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

详细信息:请参阅https://docs.microsoft.com/answers/questions/15463/uwp-compilation-error-with-net-native-compile-opti.html中的评论


推荐阅读