2011-11-16 11 views
6

Rozpoczęcie budowy 16.11.2011 09:24:11 AM. Projekt "C: \ Builds \ 1 \ NetTellerMigration \ NetTellerMigrationBuild \ Sources \ blah.sln" na węźle 1 (domyślne cele). ValidateSolutionConfiguration: Konfiguracja rozwiązania konstrukcyjnego "Development | Default". MSBUILD: ostrzeżenie MSB4078: Plik projektu "blah \ blah.dtproj" nie jest obsługiwany przez MSBuild i nie można go zbudować. [C: \ Builds \ 1 \ NetTellerMigration \ NetTellerMigrationBuild \ Sources \ blah.sln] Wykonano projekt budowlany "C: \ Builds \ 1 \ NetTellerMigration \ NetTellerMigrationBuild \ Sources \ blah.sln" (domyślne cele).Wydanie TFS CI z pakietem SSIS

Kompilacja powiodła się.

"C: \ Buduje \ 1 \ NetTellerMigration \ blahBuild \ Sources \ blah.sln" (domyślnie docelowy) (1) -> (blah_b docelowy) -> MSBuild: Ostrzeżenie MSB4078: Plik projektu „bla \ blah.dtproj "nie jest wspierany przez MSBuild i nie można go zbudować. [C: \ buduje \ 1 \ \ NetTellerMigrationBuild NetTellerMigration \ Sources \ blah.sln]

1 Warning(s) 
0 Error(s) 

Dotychczasowy czas 00: 00: 00,42

mają obecnie tfs2010 zainstalowany SQLEXPRESS i staram się "bezskutecznie" wdrażać ciągłą integrację z pakietem SSIS. Moim celem jest stworzenie kompilacji uruchamianej przez checkin kodu. Mam definicję kompilacji do doso, ale pojawia się powyższe ostrzeżenie i żadne pliki ".dtsx" nie są kopiowane do katalogu kompilacji?

Wierzę, że ma to coś wspólnego z agentem kompilacji, który kieruje do v4 środowiska .net, ale mogę się mylić. W każdym razie wszelka pomoc byłaby bardzo ceniona przez każdego, kto miał wcześniej ten problem.

Odpowiedz

6

MSBuild nie może budować projektów SSIS (.dtproj), ponieważ format tych projektów to pre-VS2010. Najlepszą rzeczą do zrobienia jest posiadanie powłoki MSBuild do projektu SSIS. Aby to zrobić, możesz utworzyć pusty projekt C#. Następnie otwórz plik .csproj dla nowego projektu w edytorze tekstu i docelową BeforeBuild na następujące kwestie:

<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> 

Ustaw ścieżkę bla/blah.dtproj dla danego projektu. To uruchomi wersję VS2008 devenv do zbudowania projektu SSIS.

Poniżej próbka tego, co cały plik .csproj może wyglądać następująco:

<?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> 
+0

bit hack. próbuję zintegrować kompilację CI i to nie działałoby, gdybym to zrobił. Musi być bardziej elegancki sposób? – Christo

+0

Zgadzam się, ale nie sądzę, że istnieje inny sposób. Agent budujący TFS działa tylko ze skryptami MSBuild. Zakładam, że pliki projektu w następnej wersji BIDS będą działały z MSBuild. Możesz rzucić okiem na najnowsze CTP SQL Server 2012. –

+0

ok dzięki Brent. Rzucili okiem na CTP 2012, ale nic nie wyszczególniono w specyfikacji funkcji dotyczącej tego konkretnego problemu. Można tylko przypuszczać, że to był adres. Dzięki jeszcze raz. – Christo

0

musiałem lekko tweek mój cel, aby dostać pracy:

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