GetDirectories llamada en MSI lanza CustomAction excepción de seguridad sólo cuando todos los usuarios

StackOverflow https://stackoverflow.com/questions/3808832

Pregunta

I tiene una acción personalizada que estoy usando para desplegar algunos archivos que se sientan al lado de la MSI en el paquete de transferencia. Mi acción personalizada se pasa la ruta de MSI a través del parámetro OriginalDatabase y estoy comprobando para ver si hay una carpeta al lado de él. Nada demasiado loco, pero era un dolor en el trasero de averiguar.

La instalación de uno o varios usuarios a partir de archivos copiados a nivel local funciona como un campeón. La instalación de un solo usuario cuando se ejecuta el setup.exe desde un recurso compartido de red funciona bien sin embargo cuando instalo todos los usuarios de un recurso compartido de red que estoy recibiendo una excepción de seguridad.

La línea en cuestión es la siguiente:

DirectoryInfo[] subdirectories = workingDirectoryInfo.GetDirectories("Foo");

Las carreras de acción personalizados con SecurityAction.Demand por lo que debe tener toda la necesidad de acceso I.

Cualquier cualquiera de entrada puede proporcionar es muy apreciada.

Gracias, Casey

¿Fue útil?

Solución

Creo que cuando se instala por usuario del lado del servidor no necesita elevar a hacer la transacción por lo que suplanta al usuario interactivo y se puede acceder a los archivos. Cuando se instala para todos los usuarios que tiene que elevar a lo que ahora es, básicamente, se ejecuta como sistema que utilice la cuenta de máquina para acceder a los archivos y la pluma se obtiene un error de permisos.

¿Puedo preguntar por qué estos archivos no están en su instalador? ¿No hay alguna manera puede incluirlas por lo que no tiene que tener la acción personalizada? De lo contrario, puede que tenga que escribir una acción personalizada que detecta la OriginalDatabase está en un recurso compartido de red y evitar que la instalación a menos que el usuario copia de todos los archivos antes de ejecutar abajo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top