by Valeriano Tortola
26. febrero 2008 02:57
En mi anterior entrada hablaba sobre como crear enlaces en SendTo y preparar nuestra aplicación para recibir los nombres de los archivos seleccionados. He de confesar, que desde que uso XP x64 y VS2008 tengo varios problemas con los instaladores MSI que genero con VS, asi que estoy esperando a que pasen los TechDays para ponerme a instalar XP normal ..., el caso es que elaborando dicho artículo no pude probar correctamente la parte de instalación ya que, literalmente, aparecia un error de acceso a memoria un poco chungo cuando le daba a "Install" desde el VS, poco después me dí cuenta de que el error no aparece al ejecutar el .msi directamente y me dí cuenta que la manera de generar el enlace en la carpeta SendTo no funciona!!
Parece ser que los enlaces que generan los MSI son advertised shortcuts, un tipo especial de enlace que ejecuta Windows Installer antes de llamar al enlace, con lo que no funcionan al colocarlos en SendTo, pues no llaman directamente a la aplicación... por lo que no hay paso de parámetros. Asi que me puse manos a la obra a buscar que tenia que hacer en VS para deshabilitar esta "funcionalidad" y usar enlaces de toda la vida... y no, no hay forma. Pregunté en los foros de MSDN pero parece no haber respuesta...
Aqui llega el momento en el que uno se cabrea, porque resulta que en la creación del paquete de instalación puedes especificar que quieres enviar a la carpeta SendTo como explicaba en el artículo, carpeta que tiene un único proposito... pero... no vale para nada porque estos enlaces no funcionan alli :P
Soluciones hay varias, pero no bonitas, una... más engorrosa pero también más compacta es editar el .msi con una herramienta llamada Orcas, la otra... ejecutar el instalador añadiendo un parámetro:
msiexec /i MiInstalador.msi DISABLEADVTSHORTCUTS=1
ó
MiInstalador.exe DISABLEADVTSHORTCUTS=1
En una página proponen alguna más. Yo he probado (ahora si :D) la segunda forma y funciona. Lo peor es que no es nuevo, pasa de siempre y todavía sigue sin haber una opcion en VS para modificar este comportamiento.
En fin, a parte del cabreo y tener que editar los posts... me flagelaré por haber publicado algo sin probar :P