Pregunta

En una solución VS2010 tengo un archivo License.licx que contiene:

DataDynamics.ActiveReports.ActiveReport, ActiveReports6, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
DataDynamics.ActiveReports.Web.WebViewer, ActiveReports.Web, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
DataDynamics.ActiveReports.Export.Pdf.PdfExport, ActiveReports.PdfExport, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
DataDynamics.ActiveReports.Design.Designer, ActiveReports.Design6, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
DataDynamics.ActiveReports.Viewer.Viewer, ActiveReports.Viewer6, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff

Si construyo la solución en una máquina que tiene una licencia para ActiveReport, entonces todo está bien. Si construyo la solución en una máquina que no tiene una licencia para ActiveReport, obtengo:

Error 1 'No se pudo cargar archivo o ensamblaje' ActiveReports6, versión = 6.1.2814.0, cultura = neutral, publickeyToken = CC4967777C49A3FF 'o una de sus dependencias. La operación no es compatible. (Excepción de HRESULT: 0x80131515) 'LC

En la máquina que no tiene una licencia para ActiveReport si elimino las líneas anteriores del archivo de licencia.licx, entonces todo se acumula bien. Siempre pensé que si no se podía encontrar la licencia, entonces se usará la versión sin licencia, pero no mataría la construcción. ¿Cómo consigo esta solución para construir en cualquier máquina, ya sea que tenga una licencia o no?

¿Fue útil?

Solución 2

Contactó a ActiveReports y me dijeron que se puede mantener un archivo de licencia para cada usuario, ya sea que tenga una licencia pagada o no. El truco es que los usuarios que no generarán informes deben instalar una licencia de prueba (que ActiveReports proporciona de forma gratuita) y los usuarios que pagaron la licencia tendrán su propia licencia. La licencia de prueba, al igual que la licencia de pago real, se ocupará del archivo License.licx y proporcionará las acciones adecuadas cuando ve una entrada que reconoce en el archivo .llicx.

Otros consejos

En realidad, parece que esta máquina no tiene esa versión específica de ActiveReports instalada.

Resolvemos problemas como este almacenando ensamblajes externos en una ruta en relación con el proyecto (es decir, ensamblajes) y modificando todos los proyectos para incluir un hintpath, por ejemplo:

<Reference Include="ActiveReports3">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\..\..\..\Assemblies\ActiveReports3.dll</HintPath>
</Reference>

De esta manera, no tiene que preocuparse de que todos los desarrolladores tengan la misma versión exactamente instalada. Debería poder depurar con esta configuración, pero no construir para la versión.

Actualizar

Olvidé mencionar otra práctica que implementamos: a menos que el componente lo requiera absolutamente (solo tenemos una en la que puedo pensar en la parte superior de mi cabeza), nunca almacenamos versiones en el archivo License.licx. Nuestra entrada de licencias.licx para el ejemplo anterior es:

DataDynamics.ActiveReports.ActiveReport3, ActiveReports3

Debe mantenerse al tanto del archivo licencias.licx si hace esto, pero definitivamente resuelve varios problemas de versiones.

Si construyo la solución en una máquina que no tiene una licencia para ActiveReport, obtengo

Esto es parte del problema. Por lo general, la licencia requiere que cada desarrollador tenga una licencia. Intentar licenciar solo una parte de su equipo de desarrollo es probable que viole su licencia ActiveReports.

Debería estar perfectamente bien usar una versión de prueba de ActiveReports de la forma en que está describiendo. He visto una serie de problemas con las licencias de Visual Studio con varios componentes. Por lo general, se pueden resolver utilizando los siguientes pasos:

  • Limpie la solución usando Build> Clean
  • Elimine el archivo LICX (Visual Studio generará este archivo según sea necesario).
  • Agregue un control Arviewer a un formulario en su proyecto (puede eliminarlo nuevamente más tarde). Esto se necesita en una máquina con una licencia de ActiveReports válida. Y esto es lo que debería activar el archivo LICX para que se regenere con la información correcta.
  • Reconstruya (asegúrese de hacer una reconstrucción real, sé que se supone que es una construcción limpia, pero a veces la reconstrucción parece ser importante).

Aparte de eso, solo verifique que sus referencias sean correctas. Por ejemplo, asegúrese de no tener múltiples versiones de DLL referenciadas en diferentes proyectos dentro de la solución y asegúrese de que "Copiar local" y "Usar versión específica" sean como esperan.

Si todavía tiene problemas, cree un nuevo proyecto, agregue ActiveReports (o cualquier componente con el que tenga problemas) y haga una aplicación de estilo "Hola Mundo" para asegurarse de que funcione correctamente y luego compare los dos proyectos (referencias, archivos, archivos, archivos, etc.).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top