I have a request to automate the process of generating ISPAC files as part of our automated build system (currently this is being done manually from a developer machine). The way the build system is configured all the tools reside in source control and nothing is installed on the build machines. When a build is started a script configures the environment to use the paths within the source control repository for running the tools. On my dev machine I have SSDT installed, but I need to avoid having to install anything. I've run across this article which discusses how to generate ISPAC files from the command line via MSBuild, and references a project on CodePlex, but the project still requires SSDT be installed to work. I've reached out to the author of the article to see if he had any suggestions, but thought I'd try here as well since it's such a large audience.
After having built the tool from the project and determined the dependencies of the tool and pulling the appropriate DLLs into the same folder as the tool I get the following error when I run:
An Integration Services class cannot be found. Make sure that Integration Services is correctly installed on the computer that is running the application. Also, make sure that the 64-bit version of Integration Services is installed if you are running a 64-bit application. [D:\XXX\YYY\Src\Rpt\SSIS_msbuild.proj]
at Microsoft.SqlServer.Dts.Runtime.ProjectParameter.Init(String parameterName, ParameterCollection collection) [D:\XXX\YYY\Src\Rpt\SSIS_msbuild.proj]
at Microsoft.SqlServer.Dts.Runtime.ProjectParameter..ctor(String parameterName, TypeCode dataType, ParameterCollection collection) [D:\XXX\YYY\Src\Rpt\SSIS_msbuild.proj]
at Microsoft.SqlServer.Dts.Runtime.ProjectParameters.Add(String parameterName, TypeCode dataType) [D:\XXX\YYY\Src\Rpt\SSIS_msbuild.proj]
at Microsoft.SqlServer.IntegrationServices.Build.DeploymentFileCompilerTask.Execute() in D:\XXX\Tools\build\Tools\src\SSISMSBuild_2012\DeploymentFileCompilerTask.cs:line 182 [D:\XXX\YYY\Src\Rpt\SSIS_msbuild.proj]
Following the stack trace it looks like DTS.dll is what's hanging me up, even though it's in the same folder as the tool. Somebody mentioned to me to look into registration-free COM interop as a possible solution. I've generated a manifest file for DTS.dll, as well as one for the tool, but still no difference. I don't know if this is the wrong path to accomplish what I need or if I'm just doing it wrong. Any help would be greatly appreciated.