windows phone 8-更新应用程序并添加新UI时引发NullReferenceException-WP8



这真的很奇怪,而且是第一次发生。

我在商店里有一个版本的应用程序。下一个版本几乎没有UI更改。进行了大量的重新安排。

现在,对于用xaml编写的文本块,当我尝试分配一些文本时,我会得到一个NullReferenceException。InitilizeComponent是在我赋值之前调用的,那么文本块如何保持为null呢!

                <Grid x:Name="AdsDialog" Grid.Row="2">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="*"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="30"/>
                    </Grid.RowDefinitions>
                    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
                        <TextBlock Name="statusPreview1" Text=" " Width="240" TextAlignment="Center" Foreground="#FF121212" FontFamily="{StaticResource CicleSemi}" MaxWidth="250" MaxHeight="70" HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap" Margin="0,0,0,3" />
                        <TextBlock Name="statusPreview" Text="" Width="240" TextAlignment="Center" Foreground="#FF121212" FontFamily="{StaticResource CicleSemi}" MaxWidth="250" MaxHeight="70" HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap" Margin="0,0,0,3" />
                    </StackPanel>    
                </Grid>

当我重新构建应用程序时,错误消失了。但如果我为现有用户推出更新,很可能会抛出异常!

StatusPreview1是新的TextBlock。

有人请帮忙!

虽然我不能真正解释为什么您首先得到这个null异常,但您的担忧是没有根据的。更新后,用户将拥有与您完全相同的二进制内容。只有存储在应用程序存储中的数据才会在更新过程中引发问题。

很可能,编译器没有注意到您的一些更改,也没有重新生成obj文件夹中的文件(您是否偶然更改了计算机的系统日期?)。当进行完全重建时,编译器会停止尝试确定哪些文件需要重新生成,并从头开始编译所有文件。

我通过在Release模式而不是调试模式下运行它来解决这个问题,所以我想以前的版本被重写了,或者可能丢失的东西被更新了,一切都正常!

最新更新