2011-11-16 25 views
6

Bắt đầu xây dựng 16/11/2011 9:24:11 SA. Dự án "C: \ Builds \ 1 \ NetTellerMigration \ NetTellerMigrationBuild \ Sources \ blah.sln" trên nút 1 (mục tiêu mặc định). ValidateSolutionConfiguration: Cấu hình giải pháp xây dựng "Phát triển | Mặc định". MSBUILD: cảnh báo MSB4078: Tệp dự án "blah \ blah.dtproj" không được MSBuild hỗ trợ và không thể được xây dựng. [C: \ Builds \ 1 \ NetTellerMigration \ NetTellerMigrationBuild \ Sources \ blah.sln] Hoàn thành dự án xây dựng "C: \ Builds \ 1 \ NetTellerMigration \ NetTellerMigrationBuild \ Sources \ blah.sln" (mục tiêu mặc định).Sự cố TFS CI với gói SSIS

Xây dựng thành công.

"C: \ xây dựng \ 1 \ NetTellerMigration \ blahBuild \ Sources \ blah.sln" (mặc định mục tiêu) (1) -> (mục tiêu blah_b) -> MSBUILD: cảnh báo MSB4078: Hồ sơ dự án "blah \ blah.dtproj "không được hỗ trợ bởi MSBuild và không thể được xây dựng. [C: \ xây dựng \ 1 \ NetTellerMigration \ NetTellerMigrationBuild \ Sources \ blah.sln]

1 Warning(s) 
0 Error(s) 

thời gian trôi qua 00: 00: 00,42

Tôi hiện đang có tfs2010 cài đặt với SQLExpress và im cố gắng 'không thành công' để triển khai tích hợp liên tục với gói SSIS. Mục tiêu của tôi là tạo một bản dựng được kích hoạt bằng mã kiểm tra. Tôi có một định nghĩa xây dựng cho doso nhưng cảnh báo được hiển thị ở trên được hiển thị và không có tệp '.dtsx' nào được sao chép vào thư mục xây dựng?

Tôi tin rằng nó liên quan đến tác nhân xây dựng nhắm mục tiêu v4 của khung .net nhưng tôi có thể sai. Dù sao, bất kỳ sự giúp đỡ nào cũng sẽ được nhiều người đánh giá cao trước đây.

Trả lời

6

MSBuild không thể xây dựng các dự án SSIS (.dtproj) vì định dạng của các dự án này là trước VS2010. Điều tốt nhất để làm ở đây là để MSBuild shell ra ngoài dự án SSIS. Bạn có thể tạo một dự án C# trống để thực hiện việc này. Sau đó, mở tệp .csproj cho dự án mới trong trình chỉnh sửa văn bản và đặt mục tiêu BeforeBuild thành:

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

Điều chỉnh đường dẫn blah/blah.dtproj cho dự án của bạn. Điều này sẽ chạy phiên bản VS2008 của devenv để xây dựng dự án SSIS.

Dưới đây là một ví dụ về những gì toàn bộ file csproj có thể trông giống như:

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

chút của một hack. im cố gắng để tích hợp một CI xây dựng và điều này sẽ không hoạt động nếu tôi đã làm điều này. Phải có một cách thanh lịch hơn? – Christo

+0

Tôi đồng ý, nhưng tôi không nghĩ có cách nào khác. Tác nhân xây dựng TFS chỉ hoạt động với các kịch bản MSBuild. Tôi cho rằng các tệp dự án trong phiên bản BIDS tiếp theo sẽ làm việc với MSBuild. Bạn có thể xem qua CTP mới nhất của SQL Server 2012. –

+0

ok cảm ơn Brent. đã xem nhanh CTP 2012 nhưng không có gì chi tiết trong đặc điểm tính năng liên quan đến vấn đề cụ thể này. Chỉ có thể đoán địa chỉ của nó. Cảm ơn một lần nữa. – Christo

0

tôi phải hơi tweek mục tiêu của tôi để làm cho nó làm việc:

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