2011-03-15 11 views
5

Tengo una aplicación Windows Forms desarrollada usando C# en .NET framework 3.5, Service Pack 1. La aplicación se puede publicar en base a la base de datos de desarrollo y de producción. Estoy utilizando las tareas de la comunidad de MSBuild para publicar mi aplicación. No me enfrento a ningún problema al publicar la aplicación en una ubicación diferente, es decir, una ubicación de desarrollo y una ubicación de producción.Instalar una aplicación ClickOnce desde dos ubicaciones diferentes

Edición:

  1. Después de instalar la aplicación en el desarrollo de mi máquina, soy incapaz de instalar la aplicación de producción. Me da un dicho error:

    No se puede iniciar prueba de aplicación de esta ubicación porque ya está instalado desde una ubicación diferente

  2. Pregunta: ¿Cómo funciona la máquina de entender que yo estoy tratando de instalar la misma aplicación? Supongo que tiene algún tipo de ID de aplicación. Si ese es el caso, puedo anular el valor en cuestión según la ubicación. (DEV o PROD)

    El código actual mientras se publica en el archivo de proyecto de mi solicitud:

    <Choose> 
        <When Condition=" '$(BuildEnvironment)' == 'DEV' "> 
         <PropertyGroup> 
         <PublishDir>\\A\B\development\</PublishDir> 
         <BaseConnection>Data Source=SQL-DEV.company.com; Database=TEST;Uid=XYZ;Pwd=ABC;</BaseConnection> 
    
         </PropertyGroup> 
        </When> 
    
        <When Condition=" '$(BuildEnvironment)' == 'PROD' "> 
         <PropertyGroup> 
         <PublishDir>\\A\B\production\</PublishDir> 
         <BaseConnection>Data Source=SQL-PROD.company.com;; Database=TEST;Uid=XYZ;Pwd=ABC;</BaseConnection> 
    
         </PropertyGroup> 
        </When> 
    </Choose> 
    

    La publicación de la aplicación funciona como un encanto y apunta a la base de datos en cuestión. Todo lo que quiero hacer ahora es poder instalar la aplicación de desarrollo y la aplicación de producción en la misma máquina sin ningún error.

  3. Pregunta: ¿Qué diferencia una aplicación de un clic una vez con la otra?

Respuesta

4

Así que finalmente he descubierto cómo implementar diferentes versiones de la misma aplicación. El archivo de manifiesto de aplicación faltaba deploymentProvider attribute of the deployment element.

Después de agregar el atributo de proveedor de implementación del elemento de implementación en el manifiesto de la aplicación, pude instalar mi aplicación desde varias ubicaciones. Pero el problema aquí era que estaba anulando la aplicación previamente instalada. Para este problema, seguí this tutorial para distinguir mi aplicación de desarrollo de la aplicación de producción.

Todo funciona muy bien ahora. :)

+0

Parece que es necesario firmar con Mage.exe después de editar el menifest. – EvAlex

0

Lo primero que intentaré es ir a las propiedades del proyecto de Windows Forms. En la pestaña Publicar, haga clic en el botón Opciones y cambie el "Nombre del producto" al Su nombre de producto _ Pruebe o algo similar y vea si eso le permitirá instalar dos versiones una al lado de la otra.

Nunca intenté esto, pero creo que las aplicaciones de ClickOnce se identifican de manera única por una combinación de valores de "Nombre del editor" y "Nombre del producto" y, de ser así, esto podría resolver su problema ... Pruébela. ..

+0

Esa fue una de las primeras cosas que traté de distinguir entre mi aplicación dev y prod al publicarlas. Pero, eso no funciona. – reggie

+0

Por lo tanto, la conclusión es que el nombre del ensamblaje ** y ** el nombre del producto deben cambiarse ... –

+0

Sí. Tuve que cambiar el nombre del ensamblado, así como el nombre del producto para diferenciar las versiones. El principal problema que tuve fue que la configuración no me permitió instalar la segunda versión. la introducción del proveedor de implementación me ayudó a instalarlo. – reggie

1

Tengo un producto llamado ClickOnceMore (www.clickoncemore.net) que está diseñado para este tipo de uso. Su uso principal es automatizar la parte ClickOnce de su compilación.

Tiene soporte completo para expansiones macro que le permiten definir, por ejemplo, versiones DEV y PROD. Cuando construyes puedes definir qué entorno estás creando y luego el nombre de la aplicación reflejará eso. Compruébalo si tienes la oportunidad.

0

Sé que este es un hilo viejo, pero tuve este mismo error con WPF al intentar actualizar y una versión anterior del programa. Tuve que desinstalar la versión anterior y volver a ejecutar el clic una vez instalador luego funcionó bien.

Pensé que lo publicaría aquí.

Cuestiones relacionadas