2010-01-11 20 views
7

Estamos pensando en utilizar ClickOnce para la implementación. No estoy seguro de si esto se puede lograr fácilmente al usar ClickOnce. Creamos el instalador ClickOnce y lo distribuimos a los clientes, y cada cliente colocará el instalador ClickOnce en su propia red. Cada usuario del cliente lo ejecutará desde su red local.Implementación de ClickOnce y cambio del archivo de configuración después de la instalación

La aplicación tiene algunas configuraciones en el archivo de configuración. Cada cliente tendrá su propia configuración (todos los usuarios bajo el cliente usarán la misma configuración). Tengo entendido que una vez que se crea el paquete ClickOnce, los clientes no pueden cambiar el archivo de configuración para establecer su propia configuración, o se debe volver a firmar ClickOnce.

¿Es correcto mi entendimiento? ¿Hay alguna solución? ¿Puede la aplicación acceder a la ubicación de actualización para archivos no incluidos en el manifiesto ClickOnce?

Respuesta

3

Si se dirige a 3.5 Framework no tiene que firmar sus implementaciones de ClickOnce. Asegúrese de que "Firmar los manifiestos ClickOnce" esté desactivado en la pestaña "Firmar" de las propiedades de su proyecto. Esto le permitirá editar el archivo .application después de que se crea la implementación. Cambie el atributo de base de código de la etiqueta deploymentProvider ...
<deploymentProvider codebase="http://theirserver/.../Foo.application" />

Sin embargo, esto no resolverá el problema de configuración de la aplicación. Si edita un archivo que está implementando, se debe regenerar el hash del archivo .

¿Sabe cuál debe ser la configuración del cliente? Si es así, ¿podría tener archivos de configuración separados para cada cliente y hacer algo con un evento de preconstrucción para copiar los archivos de configuración?

¿La configuración tiene en el archivo de configuración del cliente? ¿Podría almacenar la configuración en el servidor y pasarla a través de un parámetro de la url u obtenerla con una llamada al servicio web después de que se inicie la aplicación?

Si estas cosas no funcionan, podría proporcionar a sus clientes una secuencia de comandos simple (probablemente usando Mage) para que puedan regenerar y renunciar a los manifiestos (con su propio certificado) después de editar la implementación.

+0

gracias. ¿Qué sucederá si un archivo (como el archivo de configuración o un archivo personalizado) no está incluido en hash? – Qstonr

+0

Cada archivo que se implementa es hash.Los hashes están todos almacenados en el archivo .manifest. No tiene opción sobre los archivos hash, es cómo funciona el clic una vez. Es una medida de seguridad que protege contra las implementaciones manipuladas – codeConcussion

+0

@codeConcussion ¿sabe si algo ha cambiado, es 2015 hay otra forma de lograr esto en estos días con las nuevas versiones de la red marco? – Tuco

1

Estamos utilizando ClickOnce en nuestra empresa, y tuve que publicar un paquete por URL. Sin embargo, en su caso siempre puede publicar con un nombre DNS, y decirle a sus clientes que utilicen el mismo nombre DNS en su red, y siempre debería funcionar.

+1

Entonces, ¿los clientes deben usar el mismo nombre DNS, y la configuración que se pasará a través del parámetro URL? – Qstonr

0

Uno más no es muy buena solución:

Puede colocar archivos de configuración para diferentes grupos "opcionales" y descarga una configuración específica utilizando manualmente ApplicationDeployment.DownloadFileGroup. Pero, en cuanto a mí, esta no es una solución perfecta.

1

Puede encontrar mi blog reciente publicación en MSBuild and Multiple environments útil. Tenga en cuenta que cada uno de sus clientes podría tener su propio "entorno", lo que le permite especificar sus diversas configuraciones de forma individual.

Si utilizó este enfoque, aún podría 'firmar' la implementación.

¡Buena suerte!

Cuestiones relacionadas