在发布模式下构建以xamarin.forms编码的UWP应用会导致内部编译器错误:指定的转换无效

时间:2018-07-15 13:38:49

标签: c# deployment xamarin.forms uwp release-mode

我的代码中发生了一些非常烦人的事情。

在与该框架进行了几个月的竞争之后,我已经在operator<<中构建了一个应用程序,只是发现我完成后无法以发布模式构建应用程序以将其部署到商店。

该应用程序在调试模式下运行良好,但在UWP项目中未在发布模式下构建。我一直在努力寻找一种在发布模式下构建应用5天的方法。但是无论我在所有论坛中看到哪种解决方案以及遇到的stackoverflow问题,该错误都不会闪烁。

在发布模式下构建应用程序时,IDE显示的错误是:

  

内部编译器错误:指定的转换无效。

没有什么比这更能告诉我的了。 IDE不会给我任何其他错误消息。经过数天的努力,我在网上找到了类似的解决方案,但没有任何效果。

  • 我已经更新了IDE
  • 更新了所有软件包
  • 已删除UWP项目中的自定义渲染器
  • 我遍历了代码的每个部分,以查找可能造成错误效果的地方

我尝试了所有可以在网上找到的内容,但是没有任何效果。

除非变得很重要,否则我通常不会在论坛上提问。 如果我没有任何解决方案,我将被迫删除该项目并浪费我所做的数月编码,并永久放弃Xamarin,转而在工具方面享有盛誉的Flutter。

1 个答案:

答案 0 :(得分:1)

首先,请不要吸烟太多。我们了解到您很沮丧,但是Caps Lock并不能帮助我们更认真地对待它。我也知道Flutter是新的“镇上的帅哥”,但它也有一系列问题。跨平台开发并不简单,Flutter只支持两个平台,而Xamarin.Forms的范围更广,势必带来更多的复杂性。

我的第一个建议是在Visual Studio Options中更详细地更改生成输出,因为这可能会发现此处的实际问题。当涉及到释放模式时,问题通常来自用于反射的类型,但是编译器没有看到所使用的类型,因此将其丢弃。通常,这些错误会在运行时显示。对于您的情况,我将建议以下几点:

  • 首先-尝试删除项目中的binobj文件夹。这可能会有所帮助,因为它们有时会与旧的图书馆杂乱无章,并产生冲突。
  • 如果您使用的是类似Git的源代码控件(我希望您这样做),我建议您回到一些早期的提交,然后尝试在此处构建发布模式。如果项目构建成功,请跳至新的提交,然后重试。如果没有,请尝试更早的提交。这样做的目的是查明引入错误的时间,这将极大地帮助您搜索问题的根源。
  • 如果您未使用任何源代码管理-首先请记住下次使用。但是,这一次您将不得不按照“旧方法”进行操作。创建一个新项目,并从原始项目中慢慢减少代码,尝试在每个步骤中发布版本。希望这将使您找到罪魁祸首代码,然后可以在原始项目中对其进行修复

您绝对可以在这里发布您的发现,我们很乐意为您提供进一步的帮助-像缩小代码范围后在代码文件中指出实际问题。

我怀疑您的问题出在自动生成的XAML上,因此请务必将重点放在.xaml文件上,并一一添加。