6

Estoy creando mi proyecto WPF en VS 2010. Después de terminar mi trabajo con la GUI funcional, quería editar la plantilla de mi controles en Blend 4. Pero cuando abro proyecto en Blend, en DesignMode, me dicenProblema al intentar abrir el proyecto WPF en Expression-Blend 4, que se creó en Visual Studio 2010


no válida XAML


en la ventana Resultado escribió:


[ControlName] no se admite en un proyecto de Windows Presentation Foundation (WPF)


Donde [ControlName] lista de controles por defecto, que he utilizado en mi proyecto (como la ventana es , DockPanel, etc.)

¿Qué hacer para evitar estos problemas y poder editar formularios WPF en DesignMode of Expression-Blend4?

EDIT:

solución posible.

Después de algún confrontarla proyectos vacíos (archivo * .csproj), que fue creado por Blend y por Studio, he encontrado que VisualStudio crearlo con la siguiente línea:

<PropertyGroup> 
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform> 
... 

mientras se utiliza la Mezcla siguientes líneas:

<PropertyGroup> 
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 

Por lo tanto, si cambia a x86AnyCPU, Blend se puede abrir el proyecto como se esperaba.

Respuesta

11

Solo he visto este mensaje de error una vez. Después de comparar un nuevo archivo de solución con el que no se carga, descubrí que Blend requiere la plataforma/configuración AnyCPU por definir.

Si eso no funciona, asegúrese de tener todos los ensamblados necesarios referenciados para un proyecto WPF: PresentationCore, PresentationFramework y WindowsBase.

HTH,

+1

hm, muy interesante. Miro en la referencia que ya tengo, hay existen PresentationCore, PresentationFramework y WindowsBase, y otros assms .NET, PERO ** ** no es 'colocación [Proyecto] \ AssemblyName', en lugar de' C:. \ Program Archivos (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 \ AssemblyName' (tienen **! ** firman en triángulo amarillo.) Después de que los cambié, todo funciona bien. – stukselbax

+0

** comportamiento muy extraño: en asambleas MS VS tienen el camino correcto, cuando se abre el mismo proyecto en Blend - todas las referencias .net se reescriben ** – stukselbax

+0

Todas mis referencias son la pata.. :(¿Hay alguna fácil de actualizar la ruta sin necesidad de retirar a todos y volver a agregarlos? También sucede esto cada vez que abra su proyecto en mezcla o usted sólo tiene que solucionarlo de una vez? – joshwl2003

1

Después de un día perdido el seguimiento de esto abajo encontré esto:

abrir el archivo .proj en un editor de texto y echar un vistazo a la parte superior del archivo, habrá una lista de secciones de PropertyGroup en el XML. Eche un vistazo al primero, si dice x86 o cualquier cosa que no sea AnyCPU, cámbielo para decir AnyCPU y guárdelo.

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform> 

debería ser:

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 

¿Por qué?No estoy 100% seguro, pero parece que Visual Studio no modifica esta parte del archivo del proyecto (si es así, no sé exactamente cuándo), ya que eliges tu configuración de compilación en la interfaz de usuario y utiliza eso en cambio. Sin embargo, dado que Expression Blend (utilizando la versión 4) no le permite elegir su configuración de compilación, simplemente selecciona la más alta. El resultado es que obtienes "XAML Inválido" y todas tus referencias tienen flequillo (!) Junto a ellas.

En mi opinión (y sabiendo que mi análisis podría ser defectuoso) Esta es una deficiencia en Expression Blend. No solo debe poder usar cualquier configuración de compilación que pueda tener el estudio, también debería poder seleccionarla.

+0

wow, he tenido este página abierta por un día y no se dio cuenta de que stukselbax ya había editado y encontrado la misma solución hace unas horas .... –

+0

místicos sucede ... – stukselbax

Cuestiones relacionadas