【发布时间】:2019-07-28 17:19:02
【问题描述】:
我是 UWP 的新手。我刚刚移植了一个相当复杂的 WPF 应用程序。我花了几个星期才弄清楚每一个差异并重构了很多代码。但是,当我开始构建并在发布模式下运行时,我得到了访问冲突异常。
这怎么可能?调试和发布执行不应该是一样的吗?如果仅在发布中出现此问题,我该如何调试?
如果我关闭本机编译,则发布版本可以正常运行。但是,当我尝试在设备上安装它时,需要一个 NetCore 2.2 调试框架。这个调试框架是什么?为什么没有它我不能运行我的发布代码?
我曾经为 AspNetCore 开发,这些东西甚至可以在 Linux 上运行。我真的不明白如果没有特殊的调试框架,UWP 应用程序如何无法在 Windows 10 平板电脑上运行。
我有点迷失在这里。非常感谢任何帮助或指导。谢谢
编辑:
至于结论:我需要从头开始重新创建应用程序。我开始逐级复制旧应用程序中的所有内容。值得付出努力,不仅因为我重构了很多代码 :),而且终于找到了导致崩溃的原因。我的一个库依赖于旧版本的 System.ServiceModel.Primitives NuGet 包。在 Debug 构建中,即使使用 Native Compilation,运行时也设法解析包。但是,在 Release 中却不能。
这是一段让我开发更好软件的旅程。但是,我可以通过从一开始更频繁地发布来避免它,或者如果运行时会显示有关程序集解析问题的更多信息错误消息。
【问题讨论】:
-
尝试删除 bin 和 obj 构建目录,让项目重新构建。值得一试
-
谢谢@JasonRoner 我已经做到了。没有帮助。我需要在某个地方找到一些缺失的 NULL 检查。
-
只是为了确定,你能检查一下这个方法是否解决了你的问题吗?因为它对我来说看起来像是一个 .Net 本机编译器问题。 stackoverflow.com/a/54090790/7418444
-
@Littledoe,谢谢你的建议。包括 Microsoft.Net.Native.Compiler 包部分解决了这个问题。 Release 的编译在 3 分钟内完成,没有任何错误。但是我无法在我的笔记本电脑上运行该应用程序 - 它没有做任何事情。稍后我将在实际设备上进行尝试。谢谢