2012-05-22 30 views
7

estoy usando la versión del Apache de log4net para la materia de registroCrystal Reports: ¿es una buena idea compilar mi proyecto utilizando la versión log4net.dll de Crystal Reports?

1.2.10.0 (with PublicTokenKey=1b44e1d426115821) 

Pero, por desgracia SAP Crystal Reports utilizar su propia versión de esta biblioteca con otra clave pública token (compilados con su propio archivo de SNK):

1.2.10.0 (with PublicTokenKey=692fbea5521e1304) 

misma versión, diferente de clave pública token. Cuando compilo mi solución Tengo un mensaje que dice lo siguiente:

"No hay manera de resolver los conflictos entre "log4net, versión = 1.2.10.0, Culture = neutral, PublicKeyToken = 1b44e1d426115821" y" log4net, Versión 1.2 = .10.0, Culture = neutral, PublicKeyToken = 692fbea5521e1304 ". Elegir" log4net, Version = 1.2.10.0, Culture = neutral, PublicKeyToken = 1b44e1d426115821 "arbitrariamente".

Lo peor es que no puedo desplegar en una máquina de 64 bits sin necesidad de instalar la versión de 32 bits de Crystal Reports (que instala el conjunto de log4net en la GAC)

Tomé la versión del cristal de log4net de la GAC y la pregunta es:

¿Resolveré algo si empiezo a usar la versión de Crystal Reports (PublicTokenKey = 692fbea5521e1304)?

y ¿Qué pasa si quiero usar la próxima versión de log4net (digamos v1.2.11.0)?

¿Hay alguna manera de resolver esto de la manera correcta?

+1

Lo más loco es decir, .net es elegir arbitrariamente la versión estándar de log4net, así que el que ha recopilado Cristal (y firmada) no se registra incluso siendo utilizado ... Entonces Crystal, ¿por qué no usar/hacer referencia al firmado oficialmente en tu aplicación en lugar de ver que eso es lo que está sucediendo de todos modos? –

Respuesta

0

Bueno, como log4net es de código abierto, puede compilarlo con un nombre diferente.

No estoy del todo seguro de si esto funcionará, pero sospecho que también podría consultar aliases. Vea también here.

+0

¡Gracias! Lo intentaré –

+0

Hola Rodrigo, ¿has pensado en cómo eliminar esta "advertencia" al final? Si es así, ¿podría publicar su respuesta aquí? salud, Tod. –

+0

Hola @Tod, me temo que no funcionó. Pero no intenté nada nuevo. –

0

agrega este código en App.config:

<runtime> 
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
<dependentAssembly> 
<assemblyIdentity name="CrystalDecisions.CrystalReports.Engine" publicKeyToken="692fbea5521e1304"/> 
<bindingRedirect oldVersion="14.0.2000.0" newVersion="12.0.2000.0"/> 
</dependentAssembly> 
<dependentAssembly> 
<assemblyIdentity name="CrystalDecisions.Shared" publicKeyToken="692fbea5521e1304"/> 
<bindingRedirect oldVersion="14.0.2000.0" newVersion="12.0.2000.0"/> 
</dependentAssembly> 
<dependentAssembly> 
<assemblyIdentity name="CrystalDecisions.ReportSource" publicKeyToken="692fbea5521e1304"/> 
<bindingRedirect oldVersion="14.0.2000.0" newVersion="12.0.2000.0"/> 
</dependentAssembly> 
<dependentAssembly> 
<assemblyIdentity name="CrystalDecisions.Windows.Forms" publicKeyToken="692fbea5521e1304"/> 
<bindingRedirect oldVersion="14.0.2000.0" newVersion="12.0.2000.0"/> 
</dependentAssembly> 
<dependentAssembly> 
<assemblyIdentity name="CrystalDecisions.Enterprise.Framework" publicKeyToken="692fbea5521e1304"/> 
<bindingRedirect oldVersion="14.0.2000.0" newVersion="12.0.1100.0"/> 
</dependentAssembly> 
<dependentAssembly> 
<assemblyIdentity name="CrystalDecisions.Enterprise.InfoStore" publicKeyToken="692fbea5521e1304"/> 
<bindingRedirect oldVersion="14.0.2000.0" newVersion="12.0.1100.0"/> 
</dependentAssembly> 
</assemblyBinding> 
</runtime> 
+2

¿Qué se suponía exactamente que debía hacer? – Zack