¿Cómo cambiar una versión de tarea de script en SSIS?


10

Agregué una tarea de script a un proyecto SSIS en VS2015. Cuando implementé en SQL Server 2016 recibí un mensaje de error que indica que el version 15.0script no es compatible.

Cuando hace esto version 15 come from? Al leer otras preguntas similares sobre Stack Overflow, veo que puede configurar la versión de destino del proyecto para SQL Server 2012, lo cual hice (el objetivo de implementación final es SQL Server 2012).

También intenté eliminar y recrear la tarea de script. Y en la información del script dice que está usando V10 de C #.

¿Cómo puedo resolver esto?

Tarea de script: Error: se produjo una excepción al cargar la tarea de script desde XML: System.Exception: la tarea de script "" ST_a1ad9dc5972c42b68c12a13155f10b6d "" utiliza un script de versión 15.0 que no es compatible con esta versión de Integration Services. Para ejecutar el paquete, use la tarea Script para crear un nuevo script VSTA. En la mayoría de los casos, los scripts se convierten automáticamente para usar una versión compatible, cuando abre un paquete de SQL Server Integration Services en% SQL_PRODUCT_SHORT_NAME% Integration Services. en Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptTask.LoadFromXML (eventos XmlElement elemProj, IDTSInfoEvents) "

También abrí el proyecto en SSDT 2012 y lo reconstruí con un nombre diferente. Mismo error. Parece que debe haber una referencia que no se eliminó o algo así.

Ninguna de las soluciones en esta pregunta ( /programming/34893267/ssis-script-task-vs15-not-work-when-deploy-on-sql-server-2014 ) funcionó.

Mirando el XML en el paquete donde está el script, puedo encontrar fácilmente esa tarea, y no hay referencia a la versión 15 en ninguna parte.

=========== EDITAR

Después de copiar el proyecto en la máquina que aloja la base de datos, abrir VS2015 e implementar desde allí, se ejecuta el paquete.

Y luego, al volver a mi máquina y construir allí, no lo hace.

¿Es esto un error? ¿O estoy haciendo algo estúpido al esperar que la compilación produzca el mismo asistente de implementación que usar el asistente de VS ...

Tengo SQL Server 2016 (13.0.4411.0), ssisdbtiene la versión del esquema (13.0.1601.5).

Estoy usando un paquete de servicios de integración creado en Visual Studio 2015. El componente de script tiene la ruta: C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\VSTA14_IS_ST_CS_Template.vstaxno me permite ejecutar el paquete a través del catálogo de servicios de integración (debido al mensaje experimentado por Zach). Sin embargo, parece que me permitirá ejecutarlo a través del sistema de archivos (usando el Agente SQL). No estoy seguro si esto está funcionando, lo actualizará una vez que el paquete se haya completado.


He notado lo mismo al especificar las versiones del paquete. Construí mi proyecto y copié el asistente olvidando cambiar la versión de destino de SQL Server. Recibí un error de que la versión de Target era demasiado alta. Cuando reconstruí con la versión de destino corregida, obtuve el mismo error, a pesar de que el XML mostraba la versión de destino corregida
Zach Smith el

Respuestas:


5

Creo que tengo el mismo problema, y ​​aquí está el trabajo que solucionó mi problema.

Detalles primero:

  • Tengo sql server 2016 (13.0.4411.0)
  • SSISDB tiene la versión de esquema (13.0.1601.5)
  • Estoy usando un paquete de servicios de integración creado en Visual Studio
  • El componente de secuencia de comandos (que indica que es 2015 C #) tiene la ruta: C: \ Archivos de programa (x86) \ Microsoft SQL Server \ 130 \ DTS \ Binn \ VSTA14_IS_ST_CS_Template.vstax

Si realizo la implementación en el catálogo a través de SSMS, no me permitirá ejecutar el paquete a través del catálogo de servicios de integración (debido al mensaje experimentado por Zach, la versión 15.0 no es compatible).

La solución alternativa:

Si implemento el paquete a través de Visual Studio en el 'Catálogo de Integration Services' en la instancia requerida, este mensaje desaparece y el proyecto se ejecuta con éxito. Esto no es ideal, ya que deberíamos poder implementar a través de SSMS, pero significa que el proyecto puede progresar.


1
Me encantaría saber por qué funciona la solución.
Zach Smith

4

Mi DBA finalmente lo descubrió y el problema fue que estaba implementando a través de SSMS 2017 sin darme cuenta. El mensaje de error me llevó por mal camino, pero su solución ayudó a conducir al razonamiento detrás de la falla. Supongo que puedes probar SSMS 2016 y ver si eso funciona. La otra forma que sugirió mi DBA es usar la línea de comando. Algo así, con 130 resaltados ya que esa es la versión que necesitas para 2016:

"C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\ISDeploymentWizard.exe" 
/Silent /ModelType:Project 
/SourcePath:"E:\ssis\Project Path\bin\Development\Project.ispac" 
/DestinationServer:"server01" 
/DestinationPath:"/SSISDB/Projects/Project"

Espero que eso ayude a aclarar esto. Trabajé en ello durante mucho, mucho tiempo antes de encontrar su solución y finalmente encontrar esta solución. ¡Así que gracias!


¿Qué quiere decir con "implementar a través de SSMS 2017 sin darse cuenta"? Utilizo VS 2017 para implementar ... y hay una configuración que le permite definir la versión de SQL Server a la que se dirige. Pero descubrí que eso no funcionó
Zach Smith el

Esto funcionó para mí. La implementación directa desde SSDT funcionó, pero no pudimos hacerlo de forma remota, la implementación a través de SSMS 2017 no funcionaría, y luego usar la opción de línea de comando a través del ISDeploymentWizard.exe 2016 funcionó. ¡Gracias!
Clinemi

0

En líneas similares a otras, originalmente implementé en SQL2014 usando el asistente de implementación SQL2017. Esto produjo el error de tiempo de ejecución. Cuando utilicé el asistente de implementación SQL2014, todo funcionó bien.


-1

Pensé que agregaría a esto, ya que estaba recibiendo el mismo error. Estoy ejecutando VS 2017 e implementando en un servidor SQL 2016. Leí bastantes artículos, luego me di cuenta de lo fácil que era para mí arreglar esto. VS 2017 tiene una gran compatibilidad con versiones anteriores.

Este artículo sobre cómo cambiar la versión de un paquete SSIS para que coincida con la versión de su servidor de destino me ayudó a resolver el error en mi caso.


Tenga en cuenta que el OP dijo que intentó cambiar el servidor de destino en su caso, pero no funcionó. Por supuesto (como se señala en el artículo), si hubiera utilizado una función no disponible en la versión de destino, las cosas no funcionarían debido a eso.
RDFozz

Sí, solo cambiar la versión de destino no funcionó. Sin embargo, cambiar la versión de destino y luego implementarlo localmente a través de VS 2017 funcionó, por lo que sospecho que hay un error en VS 2017 (al menos cuando hice la pregunta) con respecto a cómo se crea el asistente de implementación. (Supongo que, dado que este enfoque funcionó, no utilicé características incompatibles)
Zach Smith
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.