miércoles, 5 de septiembre de 2012

Tips integración VS2010 - AX 2012

Aquí os dejo un post con los problemas y soluciones que voy encontrando al tratar de integrar un proyecto .NET en Visual Studio 2010 con Microsoft Dynamics AX 2012



Problema:

Se añade la referencia al Business Connector, pero da el siguiente error:
El tipo o el nombre del espacio de nombres 'Dynamics' no existe en el espacio de nombres 'Microsoft' (¿falta una referencia de ensamblado?)

Solucion:
El proyecto se compila con el Framework Client profile. Hay que poner el Framework 4.0 completo.

Problema:

Al ejecutar el BusinessConnector  (Microsoft.Dynamics.BusinessConnectorNet) da un System.IO.FileLoadException

“El ensamblado de modo mixto se ha compilado con la versión 'v2.0.50727' del runtime y no se puede cargar en el runtime 4.0 sin información de configuración adicional.”
Solucion:

Debemos de añadir en el App.Config (o en el Web.Config, según se trate de WinForms o Webforms) la siguiente entrada:

<configuration>
   <startup useLegacyV2RuntimeActivationPolicy="true">
   </startup>
</configuration>

- Actualización -
Si estás intentando ejecutar una prueba unitaria, hay que modificar el config del siguiente directorio:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine86.exe.config
Sacado de el blog Diary of a Ninja

Problema:
Da el siguiente error al ejecutar

{"No se puede cargar el archivo o ensamblado 'Microsoft.Dynamics.Ax.Xpp.Support, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' ni una de sus dependencias. El sistema no puede encontrar el archivo especificado.":"Microsoft.Dynamics.Ax.Xpp.Support, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"}

Solución: 
Nos falta hacer login en el sesión de ManagedInterop.

     Microsoft.Dynamics.AX.ManagedInterop.Session session = new Microsoft.Dynamics.AX.ManagedInterop.Session();
     session.Logon(null, null, null, null);
     ....
     session.Logoff();



Hasta aquí es todo. Iré actualizando la lista a medida que me encuentre con más cosas.

Saludos.

9 comentarios:

  1. OK. Funciona para web y winforms

    ResponderEliminar
  2. Funciona!!
    Esto me pasó al usar las DLLs de SQLite en un proyecto de VBNet para .net 2.0 actualizado a .net 4.0.
    Saludos

    ResponderEliminar
  3. Muchas gracias por el blog, me sirvió con las DLLS de SQLite. Saludos.

    ResponderEliminar
  4. Muchas Gracias, esto me ayudó con una dll de la version 2 para net 4.0

    ResponderEliminar
  5. Algunas notas por si a alguien le sirve:

    * El business connector sólo tiene soporte oficial para proyectos en el framework 3.5

    * El uso del BC esta desaconsejado en AX 2012, sólo se mantiene por compatibilidad y no estará disponible en futuras versiones. Lo recomendable es utilizar servicios web.

    Saludos.

    ResponderEliminar
  6. Excelente Post, me ha resuelto el, muchas gracias!!!

    ResponderEliminar
  7. Y si quiero agregar una dll de la versión 2.0 a un proyecto con framework 4.5?

    ResponderEliminar

Nota: solo los miembros de este blog pueden publicar comentarios.