Issue with SSIS deployment package on SQL Server 2008 R2 - ssis

We have an issue with a file system deployment of an SSIS package on tests environnement, DTSINSTALL fails with this error : An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) (DTSInstall). This error is displayed juste after a double click on the manifest file
We use the deployment package to setup many config parameters to avoid the end-user to do it manualy on the config file, for this raison we need to make a deployable package and can't do it just by copying manualy the package on the sile system.
This config of the tests environnement is : Microsoft SQL Server Integration Services 2008 R2 wihout the SSIS Developement Studio but the package was developed on SSIS 2008, is there any incompatibility with the two versions ?
Thanks in advance.
Regards

Finally I found the solution, the Business Intelligence Development Studio should be installed on production environnement in order to deploy the SSIS package correctly.

Related

Upgrade SSIS package created in SSIS 2014 to work in SSIS 2016

How can I upgrade SSIS packages created in SSIS 2014 so that they work in SSIS 2016?
I'm trying to invoke the packages using c# (Package.Execute).
My packages have custom script tasks.
I've written redirects like...
<assemblyIdentity name="Microsoft.SqlServer.ManagedDTS" culture="neutral" />
<bindingRedirect oldVersion="10.0.0.0-13.0.0.0" newVersion="13.0.0.0"/>
But I still get the error To run a SSIS package outside of SQL Server Data Tools you must install of Integration Services or higher.
Microsoft Documentation - Understanding the Differences between Local and Remote Execution
You can only run a package outside the development environment on a
computer that has Integration Services installed. You cannot run
packages outside of SQL Server Data Tools (SSDT) on a client computer
that does not have Integration Services installed, and the terms of
your SQL Server licensing may not permit you to install Integration
Services on additional computers. SQL Server Integration Services is a
server component and is not redistributable to client computers. To
run packages from a client computer, you need to launch them in a
manner that ensures that the packages run on the server.
So, the C# code calling Package.Execute will only work on a machine with SSIS installed.
Please install SSIS on your local development machine to test this code. Or try another method to execute packages remotely.
Use SQL Server Agent to run the remote package programmatically
Use a Web service or remote component to run the remote package
programmatically
Edit: Yes, this makes it hard on developers sometimes. Microsoft wants you to pay for that SSIS license.
If you are using SSDT for Visual Studio 2017, you should be able to update the TargetServerVersion option in the properties of the SSIS project.
capture

SSIS Script Task Error: "Found SQL Server Integration Services 2012 Script Task that requires migration"

As per the Microsoft documentation on DTEXEC for executing SSIS packages:
When you use the version of the dtexec utility that comes with SQL
Server 2012 Integration Services (SSIS) to run a SQL Server 2005
Integration Services (SSIS) or a SQL Server 2008 Integration Services
(SSIS) package, Integration Services temporarily upgrades the package
to SQL Server 2012 Integration Services (SSIS).
Is there a feature to disable this aspect of DTEXEC utility when running SSIS packages?
My reason for this question is that I have a script task to rename some files in an SSIS package. This works just fine on my local machine and a coworkers local machine, but after deploying this SSIS package to our windows 2012 server with SQL Server 2012 installed I get an error message. I'm really confused, because I wrote this package in SQL Server 2012 Data Tools so this task shouldn't need to be upgraded/migrated at all, which is what the error is complaining about...
Warning: 2016-04-06 11:29:58.14
Code: 0x00000000
Source: DataMergeScriptTask
Description: Found SQL Server Integration Services 2012 Script Task "my_Script_task" that requires migration!
End Warning
Error: 2016-04-06 11:30:03.02
Code: 0x00000001
Source: DataMergeScriptTask
Description: Exception has been thrown by the target of an invocation.
End Error
Unfortunately we haven't found a solution for the Script Task not converting into 2012, as these packages are all written in Data Tools 2012 and opening/resaving the task doesn't seem to actually upgrade the script task in a way that solves it on the server.
My solution has been to take the C# script and turn it into a standalone .exe which has some command line arguments to pass our different parameters with defaults in place to match our current environment. Then I set this up to be executed by a Batch script called by a windows task scheduler job.
I'm hoping to find a real fix for this so that script tasks in larger packages will still be peachy, but that may take more time or a reinstall of data tools... Having multiple versions of SQL Server data tools/BIDS on my workstation could be a cause of this grief. More testing to come!
Just update the TargetServerVersion in your package to match the server version that you plan to deploy to.
Make sure you have a copy of your project in case it doesn't go smoothly. Then right click on the project name, choose properties, then drill into Configuration Properties -> General and update the TargetServerVersion.
Then rebuild and deploy. When the project builds, it should now be in the format that your server expects so it won't try to rebuild the script code on the server where references might not be the same.

How to explicitly specify the correct DTEXEC file when executing a SSIS package

I have an SSIS package created in visual studio 2010. I want to deploy the package to the file system(not into SQL Server) on the destination server. However, i have just been informed that the target server only has SQL Server 2005 installed.
The package will be installed using SSIS package installation utility and i am afraid the DTEXEC version of SSIS 2005 which is on the server might not successfully execute my package.
So is there away i can copy a newer DTEXEC file from my machine and have it included in the package folder such that i can explicitly call it when executing the package on the target server?
Does any one know of some sort of a script or some way that i can use to run a SSIS package developed in VS 2010 on a server that has the DTEXEC utility of SSIS 2005?
NOTE that this package doesn't have to be deployed in SQL Server, just in the file system.
I would upgrade the server (at a minimum, the SSIS Instance) to SQL Server 2012 or higher.

Can we install SSIS engine without BIDS etc? If yes would it be good idea to do it on production machine

I have brand new Windows machine which we are planning to use as production machine to run our SSIS packages. My pacakges are on filesystem not in SQL Server. Is it possible we can install SSIS Engine only without BIDS. Will utility like dtexec work if We install only SSIS Engine? Is it a good idea?
In Production you wont be developing the SSIS packages so you don't need BIDS .
BIDS is a plugin for Visual Studio with additional Project types that are
specific to SQL Server business intelligence.
While installing SQL server you should include Integration Service Instance.SSIS runtime is actually not needed to run your packages .
SSIS Service Usage
Check out this article
Description of the SQL Server Integration Services (SSIS) service and of alternatives to clustering the SSIS service
dtexec utility comes with SQL Server to run a SQL Server Integration Services (SSIS) package .So even without BIDS ,this utility will run your SSIS packages

SSIS Error When executing from command line [duplicate]

This question already has an answer here:
Executing SSIS 2012 package that has script components from external application
(1 answer)
Closed 8 years ago.
I have a small SSIS package which exports data to a excel file from SQL server 2008. The package works perfectly fine in our dev environment, when the package is moved to our another environment we receive the below error on execution from command line.
The package runs for a while and then gives the below error
Error: 2012-05-21 18:34:01.61
Code: 0xC000F427
Source: Create Summary From Detail SSIS.Pipeline
Description: To run a SSIS package outside of Business Intelligence
Development Studio you must install Standard Edition of Integration Services
or higher.
End Error
Other SSIS packages which were exported to this environment before are working fine now. Only this package is throwing this error, what i meant to say is we are having the SSIS installed on this environment.
Can Some one please let me know what could be the possible reason for this?
Please let me know if you need more information.
Thank you
What version of SQL Server do you have installed on your computer? You need at least SQL Server 2005 Standard Edition. If you are running Workgroup Edition or SQL Server Express, you will have difficulties with advanced SSIS features (unless you are running through Visual Studio.)
See http://msdn.microsoft.com/en-us/library/cc645993.aspx#SSIS for a list of SSIS features not supported by SQL Server Workgroup.
A package runs on the same computer as the program that launches it. Even when a program loads a package that is stored remotely on another server, the package runs on the local computer. Also, you can only run a package outside the development environment on a computer that has Integration Services installed. You cannot run packages outside of Business Intelligence Development Studio on a client computer that does not have Integration Services installed, and the terms of your SQL Server 2005 licensing may not permit you to install Integration Services on additional computers.
So, apparently you don't have SSIS on your "another environment". Did you deploy it to SQl Server or File disk?
To run remote packages from a local computer that does not have
Integration Services installed, start the packages so that they run on
the remote computer on which Integration Services is installed. You do
this by having the local computer use SQL Server Agent, a Web service,
or a remote component to start the packages on the remote computer. If
you try to start the remote packages directly from the local computer,
the packages will load onto and try to run from the local computer. If
the local computer does not have Integration Services installed, the
packages will not run.
This article shows mechanisms for running the package on another machine that does have SSIS installed: