2010-05-14 6 views
5

Tengo una aplicación de Windows Forms que reescribí recientemente en WPF, y debo liberarla a mis usuarios finales. Me gustaría poder hacer que los usuarios vayan al punto de instalación de ClickOnce para la aplicación WPF y que se elimine su aplicación de Windows Forms, para que no tengan ambos en su máquina.Aplicación de un clic que se mueve desde Windows Forms a WPF

¿Cuál es la mejor forma (léase: la más fácil para los usuarios) de lograr esto?

He pensado en crear una línea de comandos de requisitos previos para detectar la versión anterior y desinstalarla, pero me gustaría evitar tener que escribir algo así donde solo se ejecute una vez.

Respuesta

2

Creo que realmente DEBERÍA poder implementar la versión WPF como una nueva versión de la aplicación Windows Forms.

¿A qué versión de .NET Framework se aplican cada una de las aplicaciones?

¿El nombre del ensamblado en ambos proyectos es el mismo y la URL de instalación es la misma? (Para ClickOnce, no tiene nada que ver con el projectGUID).

1

No lo he intentado, pero ¿podría hacer que su aplicación WPF reemplace directamente su aplicación WinForms? Si publica en la misma carpeta, copie los GUID correctos del proyecto anterior al nuevo proyecto, puede que simplemente se instale a la perfección.

Eso no eliminará las versiones antiguas, pero cada actualización de una aplicación ClickOnce deja las versiones anteriores en su lugar.

Alternativamente, ¿puede transformar su proyecto WinForms existente en un proyecto WPF? ¿Es solo un conjunto diferente de referencias de ensamblaje? Nunca escribí una aplicación WPF, así que discúlpeme si esto es obviamente incorrecto.

0

¿Por qué no simplemente le da a la nueva aplicación WPF los mismos <ProjectGuid>, <PublishUrl>, etc. y un número mayor de versión principal?

ClickOnce ni siquiera se dará cuenta de que cambió de WinForms a la tecnología WPF.

La funcionalidad normal de actualización de la versión de ClickOnce reemplazará automáticamente el código anterior con el nuevo la próxima vez que se actualice la aplicación (que puede configurarse para que ocurra automáticamente si se desea).

+0

Intenté esto y la aplicación WinForm no presentó un diálogo de actualización. Cuando lancé la aplicación WPF, se instaló junto con la aplicación WinForm. ¿Sabes qué piezas necesitarías copiar de un proyecto a otro para garantizar que tenga la misma identidad? – Tyler

+0

Mi memoria estaba borrosa, así que probé algunos experimentos para confirmar. Parece que si el nuevo proyecto tiene el mismo nombre de conjunto y está firmado con la misma clave pública, tendrá la misma identidad de ClickOnce. ¿Estás seguro de que estás usando el mismo certificado para firmar ambos proyectos y ambos proyectos tienen exactamente el mismo nombre? Si esto se ha verificado, intentaré copiar las configuraciones en AssemblyInfo.cs comenzando con '' y '' en .csproj. Con suerte, uno de estos hará el truco. –

Cuestiones relacionadas