这真是奇怪而且第一次发生。
我在商店里有一个版本的应用程序。下一个版本的UI更改很少。做了很多重新安排。
现在发生的是,对于用xaml编写的文本块,当我尝试分配一些文本时,我得到一个NullReferenceException。在赋值之前调用InitilizeComponent,那么textblock如何保持为空!
<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。
有人请帮忙!
答案 0 :(得分:1)
虽然我无法解释为什么你首先得到这个空的例外,但你的担忧是没有根据的。更新后,用户将拥有与您完全相同的二进制内容。只有存储在应用程序存储中的数据才会在更新期间导致问题。
最有可能的是,编译器未能注意到您的某些更改,并且没有重新生成obj文件夹中的文件(您是否有机会更改计算机的系统日期?)。在进行完全重建时,编译器会停止尝试找出需要重新生成的文件,并从头开始编译所有文件。
答案 1 :(得分:0)
我通过在Release
模式而不是调试模式下运行它来修复问题,所以我想以前的版本已经过了写,或者可能缺少的东西得到了更新,一切正常!