Firmar un ensamblado

11/01/2006 - 14:00 por AOG | Informe spam
Hola, tengo un proyecto en VB 2005 con arquitectura distribuida, la parte de
negocio la voy a esponer en COM+ ya que utilizo EnterpriseServices para usar
ObjectPooling y JustInTimeActivation.
Entoces tengo que firmar los ensamblados con un nombre seguro para
exponerlos en servicios COM+, hasta aquí sin problemas, he hecho el Imports
System.EnterpriseServices y he añadido <Assembly:
ApplicationName("MiServicioApp")>
<Assembly: Description("MiServicioApp - servicios acceso a datos")>
<Assembly: AssemblyKeyFile("C:\MiProyecto\MiArchivo.snk")> en el archivo
AssemblyInfo.vb de cada ensamblado de mi proyecto.
El problema que me ocurre es que tengo una referencia al ensamblado
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll (para controlar
las excepciones que se proboca en la distintas capas y poder exponerlas en la
capa de interfaz del usuario).
El problema es que me da un error a compilar mi proyecto, y me dice:
Unable to emit assembly: Referenced assembly
'Microsoft.Practices.EnterpriseLibrary.ExceptionHandling' does not have a
strong name
¿como puedo firmar dicho ensamblado?.
Ha instalar Microsoft Practices EnterpriseLibrary te deja el fuente, he
intentado hacerlo añadiendo las mismas líneas en el archivo en el archivo
AssemblyInfo.cs pero me da un error que me dice que lo intente con /filekey
lo he intentado con al.exe y tlbimp.exe pero no me deja me dice que el
fichero entrada no valido, esto es lo que hago:
al.exe Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll
/out:c:\otraruta\Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll
/keyfile:C:\MiProyecto\MiArchivo.snk

Supongo que no lo hago bien.
Alguien me podría ayudar, como puedo solucionar esto, o si hay otro modo de
firmar.
Un saludo.

Preguntas similare

Leer las respuestas

#1 Guillermo guille
11/01/2006 - 14:35 | Informe spam
Hola,

Si tienes el código fuente de C#, simplemente compila la DLL usando la misma
clave que usas en tus otras DLLs.
Es decir, crea una nueva DLL y úsala en la solución.

Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Mentor Asociado de Solid Quality Learning Iberoamericana

Te recuerdo que puedes entrar en mi sitio desde:
http://www.elguille.info/ y http://www.mundoprogramacion.com/
Los foros en: http://foros.elguille.info/

"AOG" escribió en el mensaje
news:
Hola, tengo un proyecto en VB 2005 con arquitectura distribuida, la parte
de
negocio la voy a esponer en COM+ ya que utilizo EnterpriseServices para
usar
ObjectPooling y JustInTimeActivation.
Entoces tengo que firmar los ensamblados con un nombre seguro para
exponerlos en servicios COM+, hasta aquí sin problemas, he hecho el
Imports
System.EnterpriseServices y he añadido <Assembly:
ApplicationName("MiServicioApp")>
<Assembly: Description("MiServicioApp - servicios acceso a datos")>
<Assembly: AssemblyKeyFile("C:\MiProyecto\MiArchivo.snk")> en el archivo
AssemblyInfo.vb de cada ensamblado de mi proyecto.
El problema que me ocurre es que tengo una referencia al ensamblado
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll (para
controlar
las excepciones que se proboca en la distintas capas y poder exponerlas en
la
capa de interfaz del usuario).
El problema es que me da un error a compilar mi proyecto, y me dice:
Unable to emit assembly: Referenced assembly
'Microsoft.Practices.EnterpriseLibrary.ExceptionHandling' does not have a
strong name
¿como puedo firmar dicho ensamblado?.
Ha instalar Microsoft Practices EnterpriseLibrary te deja el fuente, he
intentado hacerlo añadiendo las mismas líneas en el archivo en el archivo
AssemblyInfo.cs pero me da un error que me dice que lo intente con
/filekey
lo he intentado con al.exe y tlbimp.exe pero no me deja me dice que el
fichero entrada no valido, esto es lo que hago:
al.exe Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll
/out:c:\otraruta\Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll
/keyfile:C:\MiProyecto\MiArchivo.snk

Supongo que no lo hago bien.
Alguien me podría ayudar, como puedo solucionar esto, o si hay otro modo
de
firmar.
Un saludo.


Respuesta Responder a este mensaje
#2 AOG
11/01/2006 - 18:17 | Informe spam
Hola guille, antes de todo gracias.
Ya lo he intentando pero me da errores, he expuesto en otro foros este
problema y demonento me ha dicho lo mismo que tú, bueno me han especificado
en concreto que lo que tengo que firmar son los ensamblados (proyectos)
ObjectBuilder y Common y no ExceptionHandling. Bueno te pongo en antecedentes
se trata de Enterprise Library (entlib 2.0) de Noviembre 2005 CTP como he
comentado antes a instalarlo te deja el fuente, Una solucion formado por
varios proyecto Commond, ObjectBuilder, Caching, ExceptionHandling, etc. En
mi proyecto hago referenca del ensamblado ExceptionHandling y aparentemente
funciona en mi proyecto. Pero cuando he hecho uso de EnterpriceServices
(COM+) me sucede lo ya comentado.

Bueno, lo que he hecho es añadir en el fichero
AssemblyInfo.cs del proyecto ObjectBuilder estas líneas:

//' Enterprise Services attributes
using System.EnterpriseServices;
[assembly: ApplicationName("Microsof_Practices")]
[assembly: Description("Aplicacion servicios acceso a datos")]
[assembly: AssemblyKeyFile(@"C:\MiProyecto\MiArchivo.snk")]

Los errores que me muestra son:
Error 1 Warning as Error: Use command line option '/keyfile' or appropriate
project settings instead of 'AssemblyKeyFile' C:\Archivos de
programa\Microsoft Enterprise Library November
2005\Src\ObjectBuilder\Properties\AssemblyInfo.cs 26 12 ObjectBuilder


Error 2 Assembly signing failed; output may not be signed -- Unknown error
(80131420) ObjectBuilder

Previamente he incluido la referencia en referencias del proyecto la
libreria System.EnterpriseServices.
Bueno, he intentado firmar primero el proyecto Common y se lo ha "tragado",
digo entre comillas porque no me ha dejado compilar porque me da un error
pero medice que debo firmar antes ObjectBuilder, pero ha hacerlo no me deja
ya que me muestra los errores antes comentado. he añadido las mismas líneas
en Common que en ObjectBuilder.
¿Que estoy haciendo mal?, ¿es que se ha de firmar de otra manera?
Un saludo.



"Guillermo 'guille'" escribió:

Hola,

Si tienes el código fuente de C#, simplemente compila la DLL usando la misma
clave que usas en tus otras DLLs.
Es decir, crea una nueva DLL y úsala en la solución.

Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Mentor Asociado de Solid Quality Learning Iberoamericana

Te recuerdo que puedes entrar en mi sitio desde:
http://www.elguille.info/ y http://www.mundoprogramacion.com/
Los foros en: http://foros.elguille.info/

"AOG" escribió en el mensaje
news:
> Hola, tengo un proyecto en VB 2005 con arquitectura distribuida, la parte
> de
> negocio la voy a esponer en COM+ ya que utilizo EnterpriseServices para
> usar
> ObjectPooling y JustInTimeActivation.
> Entoces tengo que firmar los ensamblados con un nombre seguro para
> exponerlos en servicios COM+, hasta aquí sin problemas, he hecho el
> Imports
> System.EnterpriseServices y he añadido <Assembly:
> ApplicationName("MiServicioApp")>
> <Assembly: Description("MiServicioApp - servicios acceso a datos")>
> <Assembly: AssemblyKeyFile("C:\MiProyecto\MiArchivo.snk")> en el archivo
> AssemblyInfo.vb de cada ensamblado de mi proyecto.
> El problema que me ocurre es que tengo una referencia al ensamblado
> Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll (para
> controlar
> las excepciones que se proboca en la distintas capas y poder exponerlas en
> la
> capa de interfaz del usuario).
> El problema es que me da un error a compilar mi proyecto, y me dice:
> Unable to emit assembly: Referenced assembly
> 'Microsoft.Practices.EnterpriseLibrary.ExceptionHandling' does not have a
> strong name
> ¿como puedo firmar dicho ensamblado?.
> Ha instalar Microsoft Practices EnterpriseLibrary te deja el fuente, he
> intentado hacerlo añadiendo las mismas líneas en el archivo en el archivo
> AssemblyInfo.cs pero me da un error que me dice que lo intente con
> /filekey
> lo he intentado con al.exe y tlbimp.exe pero no me deja me dice que el
> fichero entrada no valido, esto es lo que hago:
> al.exe Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll
> /out:c:\otraruta\Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll
> /keyfile:C:\MiProyecto\MiArchivo.snk
>
> Supongo que no lo hago bien.
> Alguien me podría ayudar, como puedo solucionar esto, o si hay otro modo
> de
> firmar.
> Un saludo.
>
>



Respuesta Responder a este mensaje
#3 Guillermo guille
11/01/2006 - 19:35 | Informe spam
No conozco esa librería, pero debería dejarte compilar.
Si acaso, prueba a compilarla desde la línea de comandos y firmala como te
dice ese aviso.
Después usa las dlls compiladas...

Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Mentor Asociado de Solid Quality Learning Iberoamericana

Te recuerdo que puedes entrar en mi sitio desde:
http://www.elguille.info/ y http://www.mundoprogramacion.com/
Los foros en: http://foros.elguille.info/

"AOG" escribió en el mensaje
news:
Hola guille, antes de todo gracias.
Ya lo he intentando pero me da errores, he expuesto en otro foros este
problema y demonento me ha dicho lo mismo que tú, bueno me han
especificado
en concreto que lo que tengo que firmar son los ensamblados (proyectos)
ObjectBuilder y Common y no ExceptionHandling. Bueno te pongo en
antecedentes
se trata de Enterprise Library (entlib 2.0) de Noviembre 2005 CTP como he
comentado antes a instalarlo te deja el fuente, Una solucion formado por
varios proyecto Commond, ObjectBuilder, Caching, ExceptionHandling, etc.
En
mi proyecto hago referenca del ensamblado ExceptionHandling y
aparentemente
funciona en mi proyecto. Pero cuando he hecho uso de EnterpriceServices
(COM+) me sucede lo ya comentado.

Bueno, lo que he hecho es añadir en el fichero
AssemblyInfo.cs del proyecto ObjectBuilder estas líneas:

//' Enterprise Services attributes
using System.EnterpriseServices;
[assembly: ApplicationName("Microsof_Practices")]
[assembly: Description("Aplicacion servicios acceso a datos")]
[assembly: AssemblyKeyFile(@"C:\MiProyecto\MiArchivo.snk")]

Los errores que me muestra son:
Error 1 Warning as Error: Use command line option '/keyfile' or
appropriate
project settings instead of 'AssemblyKeyFile' C:\Archivos de
programa\Microsoft Enterprise Library November
2005\Src\ObjectBuilder\Properties\AssemblyInfo.cs 26 12 ObjectBuilder


Error 2 Assembly signing failed; output may not be signed -- Unknown error
(80131420) ObjectBuilder

Previamente he incluido la referencia en referencias del proyecto la
libreria System.EnterpriseServices.
Bueno, he intentado firmar primero el proyecto Common y se lo ha
"tragado",
digo entre comillas porque no me ha dejado compilar porque me da un error
pero medice que debo firmar antes ObjectBuilder, pero ha hacerlo no me
deja
ya que me muestra los errores antes comentado. he añadido las mismas
líneas
en Common que en ObjectBuilder.
¿Que estoy haciendo mal?, ¿es que se ha de firmar de otra manera?
Un saludo.



"Guillermo 'guille'" escribió:

Hola,

Si tienes el código fuente de C#, simplemente compila la DLL usando la
misma
clave que usas en tus otras DLLs.
Es decir, crea una nueva DLL y úsala en la solución.

Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Mentor Asociado de Solid Quality Learning Iberoamericana

Te recuerdo que puedes entrar en mi sitio desde:
http://www.elguille.info/ y http://www.mundoprogramacion.com/
Los foros en: http://foros.elguille.info/

"AOG" escribió en el mensaje
news:
> Hola, tengo un proyecto en VB 2005 con arquitectura distribuida, la
> parte
> de
> negocio la voy a esponer en COM+ ya que utilizo EnterpriseServices
> para
> usar
> ObjectPooling y JustInTimeActivation.
> Entoces tengo que firmar los ensamblados con un nombre seguro para
> exponerlos en servicios COM+, hasta aquí sin problemas, he hecho el
> Imports
> System.EnterpriseServices y he añadido <Assembly:
> ApplicationName("MiServicioApp")>
> <Assembly: Description("MiServicioApp - servicios acceso a datos")>
> <Assembly: AssemblyKeyFile("C:\MiProyecto\MiArchivo.snk")> en el
> archivo
> AssemblyInfo.vb de cada ensamblado de mi proyecto.
> El problema que me ocurre es que tengo una referencia al ensamblado
> Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll (para
> controlar
> las excepciones que se proboca en la distintas capas y poder exponerlas
> en
> la
> capa de interfaz del usuario).
> El problema es que me da un error a compilar mi proyecto, y me dice:
> Unable to emit assembly: Referenced assembly
> 'Microsoft.Practices.EnterpriseLibrary.ExceptionHandling' does not have
> a
> strong name
> ¿como puedo firmar dicho ensamblado?.
> Ha instalar Microsoft Practices EnterpriseLibrary te deja el fuente, he
> intentado hacerlo añadiendo las mismas líneas en el archivo en el
> archivo
> AssemblyInfo.cs pero me da un error que me dice que lo intente con
> /filekey
> lo he intentado con al.exe y tlbimp.exe pero no me deja me dice que el
> fichero entrada no valido, esto es lo que hago:
> al.exe Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll
> /out:c:\otraruta\Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll
> /keyfile:C:\MiProyecto\MiArchivo.snk
>
> Supongo que no lo hago bien.
> Alguien me podría ayudar, como puedo solucionar esto, o si hay otro
> modo
> de
> firmar.
> Un saludo.
>
>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida