martes, 31 de enero de 2012

Registrar Assemblies en Global Cache desde instalador


Me he encontrado con un problema muy simpático, al generar un instalador con un componente adicional en ClickOnce. Resulta que proyecto publicado necesita de unas librerías que necesitan estar registradas en la GAC, entonces pueda que necesitemos que nuestro instalador nos ayude un poco con esto, ya que no le vamos a explicar a un cliente que él debe registrar estos ensamblados manualmente, eso para ellos es como pedirle a un niño resuelva el problema de movilidad de Bogota (Colombia). pues bien, estos son los pasos.

Una vez creado el instalador (sino lo han creado este ejemplo les puede servir) debemos acceder al sistema de archivos, para esto le damos click derecho sobre el proyecto y seleccionamos ver -> sistema de archivos.

Ahora vamos a ver las carpetas por defecto de nuestro instalador:



En la raiz de nuestro sistema de archivos le damos click derecho e incluimos una carpeta especial, para este caso, adicionamos la "carpeta cache de ensamblados global", la cual nos va a permitir que adicionemos aquellos asemmblies que deben registrarse en la GAC.

Espero les sirva de apoyo.

Si quieren saber un poco más

jueves, 26 de enero de 2012

error MSB3321, Error importing key

Despues de un par de días luchando contra este desconcertante error, y muchas horas destinadas a nuestro amigo Google, no puede encontrar solución que me sirviera. Al parecer este error es un gran monstruo que no se ha logrado descifrar, y si han llegado hasta acá se darán cuenta.


Si han recibido el popup con el mensaje "Object already exists" y luego "Importing key file "*****.pfx" was canceled", puede que esto les ayude.


Estuve considerando que este problema se debe a algún error que cometí en mi proyecto aunque aún no lo sé, en cuanto a resolverlo converse con algunos de mis compañeros y probamos mil y una cosa, pero al final, probé sobre un proyecto nuevo, con la misma firma digital que me generaba tantos inconvenientes y funcionó perfecto. ¿Entonces porque no probar en mi proyecto, haciendolo desde cero?, ¿Quizas hay algo más que no no se puede ver?. Entonces me puse a la tarea de crear un nuevo proyecto, "copiar y pegar", las clases, formularios, y hacer las respectivas referencias. Entonces probar y EUREKA!!!. El proyecto corrió normalmente y se publicó todo perfectamente.


Espero esta ayuda que me hizo falta durante 3 largos días les funcione.