2011-06-06 18 views
6

estoy trabajando a través de un tutorial MVVM, y yo tenemos el siguiente código, escrito en Xaml:XMLNS XAML: C local #

<Window x:Class="WPFMVVM.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:WPFMVVM; assembly=WPFMVVM" 
    Title="MainWindow" Height="388" Width="545"> 

Los xmlns: línea local protestó diciendo que el montaje WPFMVVM no se hace referencia. Aunque es el conjunto en el que estoy trabajando.

¿Alguien sabe por qué?

Gracias

Respuesta

12

No debe tener espacios en que hay & si se trata de la asamblea se trabaja en simplemente no se especifica assembly.

xmlns:local="clr-namespace:WPFMVVM" 

El parámetro assembly es para ensamblados de referencia. También vea el MSDN article on XAML namespaces.

El ensamblaje se puede omitir si el espacio de nombres clr se está definiendo dentro del mismo ensamblaje que el código de la aplicación que hace referencia a las clases personalizadas. O bien, una sintaxis equivalente para este caso es especificar assembly =, sin token de cadena siguiendo el signo igual.

+0

Todavía me sale un error que dice '¿Se debe especificar el ensamblado para los archivos XAML que no son parte del proyecto? ¿Algunas ideas? Gracias. –

+0

¿Ha dejado de funcionar de nuevo? (Desde que eliminó su comentario anterior) –

+0

Hola, sí lo ha hecho. Esperaba haberlo borrado antes de que lo hubieras visto. Sigue siendo el mismo problema. Gracias. –

4

No estoy seguro si esto ayudará o no, pero tuve el mismo problema y logré solucionarlo en dos proyectos diferentes. Hice clic derecho en el proyecto y hice clic en compilar. Una vez que se completó la construcción, los errores desaparecieron. No soy experto en xaml ni nada, pero al mirar el código, dice xmlns: myns = "clr-namespace: somethingorother". Si es un espacio de nombres clr, entonces debe compilarse para que exista.

2

Hay un error en el constructor xaml. En el primer intento de compilación, la falla hace que no se creen todos los archivos requeridos en debug \ obj. En el segundo intento de compilación, se crean más archivos en debug \ obj, pero no todos los que se requieren para el xaml. Si compila por tercera vez, todos los archivos que se supone que están en debug \ obj finalmente se crean y el xaml se compilará.

Por eso, cuando limpia o reconstruye la solución, el problema reaparece hasta que compila/genera la solución.

Esto es solo un problema cuando el espacio de nombres está en el mismo ensamblaje que el xaml. Si el espacio de nombres está en otro ensamblaje y el otro ensamblado existe, obtendrá una construcción exitosa. Si el otro ensamblaje no existe, entonces obviamente la construcción fallará.

2

Existe un problema conocido. Estás trabajando en una máquina de 64 bits. Simplemente configure x86 build en el proceso de desarrollo.