Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TFS CI issue with a SSIS package

Build started 16/11/2011 9:24:11 AM. Project "C:\Builds\1\NetTellerMigration\NetTellerMigrationBuild\Sources\blah.sln" on node 1 (default targets). ValidateSolutionConfiguration: Building solution configuration "Development|Default". MSBUILD : warning MSB4078: The project file "blah\blah.dtproj" is not supported by MSBuild and cannot be built. [C:\Builds\1\NetTellerMigration\NetTellerMigrationBuild\Sources\blah.sln] Done Building Project "C:\Builds\1\NetTellerMigration\NetTellerMigrationBuild\Sources\blah.sln" (default targets).

Build succeeded.

"C:\Builds\1\NetTellerMigration\blahBuild\Sources\blah.sln" (default target) (1) -> (blah_b target) -> MSBUILD : warning MSB4078: The project file "blah\blah.dtproj" is not supported by MSBuild and cannot be built. [C:\Builds\1\NetTellerMigration\NetTellerMigrationBuild\Sources\blah.sln]

1 Warning(s)
0 Error(s)

Time Elapsed 00:00:00.42

I currently have tfs2010 installed with SqlExpress and im trying 'unsucessfully' to implement continuous-integration against a SSIS package. My aim is to create a build triggered by a code checkin. I have a build definition to doso but the warning shown above is displayed and no '.dtsx' files are copied to the build directory?

I believe its something to do with the build agent targeting v4 of the .net framework but I could be wrong. Anyway, any help would be much appreciated from anyone who has experience this problem before.

like image 924
Christo Avatar asked Nov 16 '11 00:11

Christo


1 Answers

MSBuild can't build SSIS projects (.dtproj) because the format of these projects is pre-VS2010. The best thing to do here is to have MSBuild shell out to the SSIS project. You can create an empty C# project to do this. Then, open the .csproj file for the new project in a text editor and set the BeforeBuild target to the following:

<Target Name="BeforeBuild">
  <!-- Build the analysis SSIS project -->
  <Exec Command="&quot;$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\@InstallDir)\devenv.exe&quot; blah\blah.dtproj /Build" />
</Target>

Adjust the blah/blah.dtproj path for your project. This will run the VS2008 version of devenv to build the SSIS project.

Below is a sample of what the whole .csproj file might look like:

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0" DefaultTargets="Build">
   <PropertyGroup>
      <OutputPath>Bin</OutputPath>
   </PropertyGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <Target Name="BeforeBuild">
      <!-- Build the analysis SSIS project -->
      <Exec Command="&quot;$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\@InstallDir)\devenv.exe&quot; blah\blah.dtproj /Build" />
  </Target>
</Project>
like image 86
Brent M. Spell Avatar answered Oct 21 '22 05:10

Brent M. Spell