2008-12-19 10 views
6

Tengo un proyecto de instalación muy simple que copia tres dlls en el GAC. Eso es todo lo que tiene que hacer. Funciona bien en XP, pero en una máquina Vista, se equivoca al afirmar que no puede escribir en el archivo y verificar los permisos. Estoy seguro de que esto tiene que ver con algunas tonterías de suplantación en Vista, pero no estoy seguro de cómo abordarlo.¿Qué pasos adicionales toma al crear instaladores MSI para Vista?

¿Alguien más ha encontrado esto y cómo lo ha superado si es así?

Respuesta

1

Si está utilizando Windows Installer, ¿está colocando sus ensamblados en la carpeta especial Global Assembly Cache? Eso siempre me ha funcionado en Vista y Windows 7. No es necesario usar GACUtil o cualquier otra cosa, solo coloque los ensamblajes en la carpeta correcta en el proyecto del instalador.

1

¿Utiliza el archivo gacutil.exe para instalar los dlls? ¿O solo copias los archivos?

De todos modos, GAC debe evitarse para dlls personalizados a menos que sean utilizados por muchas aplicaciones. Mantenga los dlls cerca/locales de la aplicación: solo le costará algo de espacio de disco, y le permite usar una implementación simple de Xcopy.

+0

Gracias por la respuesta, pero me puede ahorrar la conferencia sobre el uso del GAC. Soy consciente de cuándo y cuándo no usarlo. En este caso, necesito utilizar el GAC. Es por eso que hice la pregunta y creé un instalador para automatizar el proceso. – Kilhoffer

+0

Lo siento, pero incluso las pautas de MS te dicen esto. De todos modos, downmodding yo (quien sea que sea) no va a resolver el problema para usted, ¿verdad ?. ¿No hice una pregunta que no respondiste? i.o.w .: usas gacutil.exe? –

+0

Para el registro, no te voté. Para responder a su pregunta, no, no usé el gacutil directamente. El instalador de MSI hace eso por ti. Estoy hablando de construir un instalador que simplemente haga tres ensamblajes GAC para usted. – Kilhoffer

0

He tenido algunos MSI (de terceros) que no se instalarán correctamente a menos que fuerce el modo elevado desde el principio, incluso si muestran un aviso de UAC más adelante en el proceso.

Solución de problemas ... Supongo que está instalando desde una cuenta de administrador. Pero, ¿está habilitado el UAC? Si es así, ¿recibe el mensaje de elevación UAC? Intenta ejecutar el paquete MSI en modo elevado para ver si funciona. Desde un símbolo del sistema con privilegios elevados:

msiexec /i setup.msi 
0

¿Qué compilador usa para hacer las MSI? Después de la diversión de los fines de semana pasado, puedo ser un experto en problemas de MSI vs. Vista :)

Si usa VC2003 o VC2005, existen diferentes problemas dependiendo de la versión del compilador.

Si en 2005, asegúrese de haber instalado el Service Pack y el Service Pack de Vista. Eso puede resolver su problema.

Si eso no funciona, puede ponerlos en el GAC con una acción personalizada, pero tenga en cuenta que hay un error en 2005 donde el bit no_impersonate está incorrectamente establecido. Tendrá que configurar este bit usted mismo usando una secuencia de comandos o orca.exe.

Cuestiones relacionadas