2010-12-14 15 views
34

¿Es posible construir un biblioteca de clases dll que también incluya formularios WPF? Cuando trato de construir uno consigo siguientes errores:Cómo compilar una biblioteca con formularios WPF

de error archivo de proyecto 1 Biblioteca no pueden especificar ApplicationDefinition elemento.
Error 2 El archivo de proyecto contiene un valor de propiedad que no es válido.

Si fijo mi proyecto como de aplicaciones de Windows compila & carreras Tho. ¿Hay alguna manera de evitar esto? Estoy usando VS2010 & C# .NET 4.0 si eso puede ser de interés para ustedes.

Gracias

Respuesta

41

Elegir WPF Custom Control Library o WPF User Control Library al crear/añadir nuevo proyecto para su solución.

+0

en realidad es más de una biblioteca mixta. Contiene clases y funcionalidades regulares, junto con algunas formas. ¿Eso funcionará? – Jens

+0

Sí. Que funcionará. – decyclone

+9

¿Hay alguna forma de hacer esto DESPUÉS de que ya lo haya creado como una Biblioteca de clases normal? Estoy mirando sus propiedades, pero ni WPF Custom Control Library ni WPF User Control Library se pueden recoger desde allí. – Jens

28

Cambia la acción de compilación de UserControl de ApplicationDefinition a Page.

+2

Este fue el problema para mí. Si alguno de mis archivos .xaml en un proyecto es ApplicationDefinition para la acción de compilación, obtengo este error. – baueric

+2

De forma predeterminada, App.xaml tendrá las Acciones de compilación establecidas en ApplicationDefinition. – DLeh

+0

App.xaml tiene que cambiarse de ApplicationDefinition a Page, luego resuelto +1 –

9

Elimine App.xaml y App.xaml.cs en su proyecto de WPF. Luego podrá ejecutar el proyecto con un tipo de salida de Class Library.

+0

Se ejecutó en esto después de crear un WIX Custom BA, y luego se cambió el proyecto de WPF de Application a Class Library. Eliminado los archivos App.xaml. *, ¡Y compilado inmediatamente! –

8

Esto también ocurre cuando copiamos y pegamos una imagen en ClassLibrary Project.

Cambie la propiedad Acción de generación de esa imagen a los recursos

1

Ampliación @ 2.493.490 respuesta.

Haga clic con el botón derecho en el archivo app.xaml y excluya del proyecto. Cambie el tipo de salida de proyecto a en propiedades de proyecto a Biblioteca de clases. Haga clic en el ícono de ejecución, la solución se compilará correctamente pero no ejecutará/ejecutará ningún código. Aparecerá un mensaje de error explicando como tal.

Cuestiones relacionadas