Creé una aplicación de consola que luego decidí que funcionaría mejor como una aplicación WPF. Cambié el tipo de salida a la aplicación de Windows y agregué lo que creo que son las referencias necesarias. Desafortunadamente, al hacer clic derecho en el proyecto no puedo agregar un diccionario de recursos u otros muchos tipos de WPF. ¿Qué me he perdido?Problema al convertir una aplicación de consola a una aplicación WPF en VS 2010
Respuesta
El método más fácil sería crear una nueva aplicación WPF y mover el código. El mejor método sería insertar la lógica en una biblioteca comercial para que pueda usar fácilmente una aplicación de consola y una aplicación wpf como tecnología de presentación para la lógica empresarial, porque WPF es una tecnología de interfaz de usuario, no un tipo de aplicación.
Desde el punto de vista geek, si quiere resolver la difícil manera de aprender, crearía una aplicación WPF separada y examinaría el archivo proj. Lo más probable es que haya algunas cosas que hagan que las cosas funcionen como WPF, así como algunas referencias que faltan.
Como todos los demás dijeron, la forma práctica de hacer un WPF es simplemente iniciar un nuevo proyecto de aplicación WPF y adaptar el código de su consola. Sin embargo, Gregory A Beamer tiene razón al señalar que es posible que desee la solución friki.
Tal vez este sería el lugar para buscar la opción correcta:
En el menú, pulse Herramientas >> Personalizar. En el cuadro de diálogo "Personalizar", presione la pestaña "Comandos" y luego haga clic en el botón de opción "Menús contextuales del editor". Ahora puede editar todos los menús contextuales en VS. Supongo que estos menús contextuales se personalizan automáticamente para cada tipo de aplicación. El menú de contexto utilizado para agregar un diccionario de recursos al proyecto debería estar en algún lugar aquí. Aunque cambiarlos manualmente puede ser un dolor en la espalda, el punto friki es que todavía están allí.
He convertido mi aplicación de consola a la aplicación WPF por debajo de los pasos
Todo lo que necesita hacer es cambiar el tipo de proyecto guid en el archivo del proyecto. 1. Agregar referencia para el montaje PresentationCore
2. Agregar referencia para el montaje PresentationFramework
3. Agregar referencia para el montaje WindowsBase
4. Vaya a Propiedades del proyecto a continuación, en la pestaña de aplicaciones tipo de salida para el cambio de aplicaciones de Windows.
5. Cree un nuevo proyecto de aplicación WPF y copie App.xaml y MainWindow o Anyother xaml files en su aplicación de consola.
Y lo último para obtener el diccionario de recursos cuando haga clic derecho en el proyecto y seleccione agregar Abra su archivo de proyecto, p. WpfApp.csproj en la libreta y añadir
**<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>**
en primera PropertyGroup elemento después FileAlignment, que debe ser similar
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{58688A7B-82F4-4229-949A-C4249DAB43FC}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ConsoleApplication1</RootNamespace>
<AssemblyName>ConsoleApplication1</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<StartupObject>
</StartupObject>
guardarlo. si su proyecto está abierto en sutiod visual, solicitará volver a cargar el proyecto, haga clic en sí. Eso es, ahora funciona como aplicación WPF y encontrará Agregar todos los menús que están disponibles en la aplicación WPF.
También tuve que agregar "nueva aplicación(). Ejecutar (nueva MainWindow())" en mi Program.cs para que comience. [STAThread] fue requerido también. –
Sin el atributo ProjectTypeGUID, pude manualmente agregar archivos y trabajar. Una vez que agregué el GUID del proyecto, el menú contextual del explorador de la solución VS y la plantilla del proyecto comenzaron a mostrar la ventana y otros tipos de wpf. – Naresh
Empecé a editar la respuesta de RAJ (ya que los pasos enumerados allí están incompletos), pero mis cambios fueron un poco drásticos, así que decidí publicar mi respuesta por separado.
Puede convertir una aplicación de consola a una aplicación WPF con estos pasos:
- añadir una referencia a los siguientes grupos:
- PresentationCore
- PresentationFramework
- WindowsBase
- Sistema .Xaml
- Abrir propiedades del proyecto. En la pestaña Aplicación, cambie el tipo de salida a la aplicación de Windows.
- Cree una nueva aplicación WPF (por ejemplo, llámelo "tempWPF") y copie App.xaml y MainWindow.xaml (junto con los archivos .xaml.cs de respaldo para ambos) en su aplicación de consola.
- Reemplazar todas las apariciones de "tempWPF" con el nombre de su proyecto de consola.
- En la ventana Propiedades para App.xaml, establezca Build Acción a
ApplicationDefinition
(como se describe here). - Eliminar/Eliminar el archivo Program.cs del proyecto. (Después de reubicar cualquier lógica personalizada de ese archivo según sea necesario, por supuesto).
Cambiar el tipo de proyecto guid. Para ello, edite el archivo de proyecto (por ejemplo WpfApp.csproj) ya sea en Notepad ++ o directly in Visual Studio, añadiendo la siguiente línea en algún lugar de primera PropertyGroup elemento:
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
volver a cargar el proyecto en Visual Studio.
- 1. Cómo convierto una aplicación de consola .NET a una aplicación Winforms o WPF
- 2. ¿No hay salida a la consola desde una aplicación WPF?
- 3. ¿Cómo puedo convertir una aplicación de consola a .dll?
- 4. ¿Cómo convertir una aplicación de consola a un servicio?
- 5. "Al salir" para una aplicación de consola
- 6. ¿Cómo puedo convertir una aplicación de WPF a exe
- 7. Escribir una consola dentro de una aplicación
- 8. Convertir la aplicación Silverlight a WPF
- 9. Problema de codificación al capturar la salida de la aplicación de consola en una prueba
- 10. HttpUtility.UrlEncode en aplicación de consola
- 11. ¿Es posible convertir un proyecto de aplicación Win32 en una aplicación de consola?
- 12. Temporizador confiable en una aplicación de consola
- 13. Usando ELMAH en una aplicación de consola
- 14. Asignar una consola para una aplicación WinForm
- 15. ¿Cómo cambiar una aplicación de consola a una aplicación de formulario de Windows?
- 16. ¿Llamar a UrlDecode en una aplicación de consola C# .NET 4.0 Visual Studio 2010?
- 17. ¿Cómo salir de una aplicación ASP.NET correctamente al detener la depuración en VS 2010?
- 18. ¿Hay alguna manera de convertir mi aplicación de consola en una aplicación de Windows Forms en C#?
- 19. Cómo implementar mdi en una aplicación WPF
- 20. Ejemplo de una aplicación winforms implementada como una aplicación wpf?
- 21. Uso de Razor Engine en una aplicación de consola
- 22. Pasar cadenas largas (como argumento) a una aplicación de consola
- 23. ¿Cómo construyo una aplicación de consola VB6?
- 24. IOC para una aplicación de consola?
- 25. Cómo implementar una aplicación de consola
- 26. . Aplicación de consola .Net que no muestra una consola
- 27. Empujar aplicación al problema heroku
- 28. ¿Cómo convertir una aplicación de rieles a una joya?
- 29. WCF dataservice security en una aplicación WPF
- 30. UrlEncode a través de una aplicación de consola?
general, recomendaría iniciar un nuevo proyecto y copiar/incluir todos los archivos de proyecto de la solución de aplicación de consola – IAbstract
¿Qué mensaje de error exacto que están recibiendo? Además, sería mejor desacoplar la GUI y la lógica comercial. Por ejemplo, podría usar el patrón MVP (Modelo-Vista-Presentador) de Martin Fowler, en uno de sus dos sabores (Vista pasiva y el otro, no recuerdo el nombre). Si hace esto, puede tener más de una vista (Consola y WPF) y usar cualquiera de ellos –
Darío, ¿podría publicar su comentario como respuesta? Esa es la ruta que terminé tomando. Gracias. – bshacklett