2011-05-09 10 views
6

En un cliente, una de nuestras aplicaciones WPF comenzó a colgarse. Al tratar de reproducir el problema con un ejemplo de trabajo mínimo, descubrí que incluso la aplicación WPF más básica (no trivial) se cuelga en esa máquina.La aplicación WPF de Vanilla se cuelga en la máquina de un cliente

Ejemplo A: Cree un nuevo proyecto C# WPF en Visual Studio 2008. No cambie nada, compílelo y ejecútelo en el equipo del cliente. Correrá

Ejemplo B: Tome el ejemplo A, y añadir un TextBlock al formulario principal Window1:

<Window ...> 
    <Grid> 
     <TextBlock>Test</TextBlock> 
    </Grid> 
</Window> 

compilar la aplicación y ejecutar en la máquina del cliente. Se colgará: la barra de título y el borde de la ventana están visibles, el interior es transparente y la ventana no reacciona ante nada (no puede moverse ni cerrarse). La aplicación debe cerrarse utilizando el administrador de tareas.

Obviamente, este WPF de cliente está roto. ¿Es esto un problema conocido, es decir, alguien lo ha encontrado antes y ya sabe cómo resolverlo (por ejemplo, reinstalar .net 3.5 SP1, etc.)?

La máquina de desarrollo es W7SP1, la máquina del cliente es XP (probablemente SP3, no comprobó).

+1

impresión fina: Sé que técnicamente * * esto no es una pregunta de programación. Sin embargo, no se ajusta ni a Serveradmin ni a Superusuario, y este es un problema muy probablemente encontrado por los desarrolladores. Por lo tanto, lo publiqué aquí. – Heinzi

+0

¿Puede ser un problema con el controlador de video? – Ben

+2

¿Intentó otras aplicaciones de WPF que no desarrolló, es decir, que descargó de la web en forma ejecutable? –

Respuesta

0

Además, recientemente tuve esta experiencia en un ejemplo más complicado.

agitando:

yo probamos este limpiar la caché de fuentes cosa y no hicieron nada para mi aplicación para colgar, pero tu caso es distinto. Sin embargo, parece inofensivo.

También probé NGEN'ing todo el material del framework, pero eso no resolvió el problema.

SOLUCIÓN:

En mi aplicación MVVM, tengo una ItemsControl (genérico, no un cuadro de lista real) en un control complejo cayó en una página de pestaña. ItemsControl presentaba unas 14 filas de datos que consistían en controles personalizados vinculados a una pequeña colección, que a su vez estaba rodeada por un ScrollViewer. Con el ScrollViewer alrededor, computadoras seleccionadas se agrietarían interminablemente y se quedarían atascadas. Al comentar el Xaml, la aplicación se comportó totalmente bien, lo que prácticamente descartó problemas en el modelo ViewModel.

Al eliminar el ScrollViewer circundante se eliminó el problema y no era realmente necesario de todos modos. Yo sospecho que el problema real se esconde en algún lugar en un estilo pero francamente no tienen tiempo o la paciencia para investigar más a fondo ...

Fragmento

<!--<ScrollViewer ScrollViewer.VerticalScrollBarVisibility="Auto" 
        ScrollViewer.CanContentScroll="True" Grid.Row="7" --> 
    <ItemsControl Grid.Row="7" 
      VerticalAlignment="Stretch"  
      HorizontalAlignment="Stretch" 
      Name="FileSettingsList" 
      ItemsSource="{Binding MigratorFiles.FilesCollection}" 
      BorderThickness="2"       
      HorizontalContentAlignment="Left" 
      Template="{StaticResource FileNameSettingsItemsControlTemplate}"       
      ItemsPanel="{StaticResource FileNameSettingsItemsPanelTemplate}" 
      ItemTemplate="{StaticResource FileNameSettingsItemDataTemplate}" > 
    </ItemsControl> 
    <!-- /ScrollViewer --> 
Cuestiones relacionadas