tutorial - Expression Blend: Obtener error "XXX" no existe en el espacio de nombres "XXX", pero no en VS2008
microsoft expression blend 4 full (5)
Creo que Blend usa la configuración / plataforma predeterminada definida en el archivo del proyecto. Debería poder arreglar esto editándolo con un archivo de texto. Si busca en su archivo .csproj, debería ver algo como esto:
<PropertyGroup>
<Configuration Condition=" ''$(Configuration)'' == '''' ">Debug</Configuration>
<Platform Condition=" ''$(Platform)'' == '''' ">AnyCPU</Platform>
...
Cambie esa AnyCPU a x86 y debería funcionar como usted espera.
Estoy tratando de usar Blend 3.0 para editar un proyecto que contiene algunos controles WPF. Este proyecto ya compila y funciona bien desde Visual Studio 2008.
En Blend, sin embargo, recibo errores misteriosos que no tienen sentido:
Por ejemplo, tengo una clase que deriva de Control:
namespace Company.WPFControls.SearchTextBox
{
public class SearchTextBox : Control
{
...
}
}
Y trato de usarlo en un recurso, en el mismo ensamblaje, para asignar un estilo:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Company.WPFControls.SearchTextBox"
<Style TargetType="{x:Type local:SearchTextBox}">
...
</Style>
</ResourceDictionary>
Me sale el siguiente error en Blend:
El nombre "SearchTextBox" no existe en el espacio de nombres "clr-namespace: Company.WPFControls.SearchTextBox".
He intentado especificar el nombre del ensamblaje, agregando ;assembly=Company.WPFControls
pero no elimina el error.
¿Hay alguna forma de solucionar esto o al menos averiguar de dónde viene el problema?
El problema está en la ruta de búsqueda de ensamblaje de mezcla. Por defecto, busca clases en ensamblajes en la carpeta "bin / Debug"! Pero si establece el destino de configuración del proyecto x86, la ruta de salida será "bin / x86 / Debug". ¡Entonces necesita cambiar su ruta de salida en Visual Studio a "bin / Debug" y Blend encontrará todas sus clases!
También puede solucionar este problema "Cualquier CPU / x86" cambiando la ruta de salida de todos sus proyectos a bin/Debug
lugar de bin/x86/Debug
(igual para la versión).
También tuve un error como este. Pero para mí, ayudó a reconstruir el proyecto directamente en Blend sin usar Visual Studio.
Para aquellos que no lo saben: puede hacer esto en Blend en el menú haciendo clic en "Proyecto" -> "Reconstruir proyecto". Al menos en la mezcla 4.
Tuve el mismo problema con Blend 2, en Windows Vista 64.
Normalmente compilo mi solución en VS2008, con un objetivo "Debug - x86" en todos mis proyectos, por lo que es compatible con algunos otros proyectos de solo 32 bits.
Parece que a Blend le encantan los objetivos "Debug - Any CPU". Básicamente, cambié mi administrador de configuración para que apunte a cualquier plataforma de CPU en lugar de x86.
Asi que...
- Abra su solución en Blend y en VS2008
- En VS2008, elija el menú Crear -> Administrador de configuración
- Asegúrese de que la configuración de su solución tenga una "Depuración - Cualquier CPU" para todos los proyectos
- Compilar en VS2008
- tadaaaa Tu proyecto de mezcla debería actualizar y eliminar esos errores ... así lo hizo por mí
Hice lo contrario para verificar si realmente fue eso, y parece que sí ... Simplemente revertí los cambios de la solución a Debug - x86, limpié todo y lo reconstruí, y aún estaba de vuelta con el error "No existe [ ...] "
En cuanto al "¿Por qué?" ... No lo sé, ¡pero al menos funciona ahora!