c# - 启用 .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 本机编译器后,构建在发布模式下工作正常
解决方案
使用将使用某些 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 –
推荐阅读
- reactjs - 使用带有 saga 的 axios 将文件从 formik reactjs 发送到 springboot
- algorithm - 请推荐优化的 IP 查找算法和数据结构
- flutter - Flutter Container 图像以全高显示我可以设置图像的高度吗?
- laravel - Laravel - 使用地图收集不覆盖先前的对象值
- php - 无法解析 [Illuminate\Mail\TransportManager] 的 NULL 驱动程序。用于流明框架
- json - 未捕获的 SyntaxError:剑道 ui 中的意外数字
- python - Elasticsearch 没有显示任何命中。Python 查询是正确的
- java - 如何多次重复使用几条线?
- android - 什么是校验和不匹配警告?
- html - Firefox 浏览器跨度样式颜色错误(红色)。它有什么问题?