2011-11-16 53 views
6

生成开始16/11/2011 9:24:11 AM。 节点1上的项目“C:\ Builds \ 1 \ NetTellerMigration \ NetTellerMigrationBuild \ Sources \ blah.sln”(默认目标)。 ValidateSolutionConfiguration: 构建解决方案配置“Development | Default”。 MSBUILD:警告MSB4078:项目文件“blah \ blah.dtproj”不受MSBuild支持,无法构建。 [C:\ Builds \ 1 \ NetTellerMigration \ NetTellerMigrationBuild \ Sources \ blah.sln] 完成构建项目“C:\ Builds \ 1 \ NetTellerMigration \ NetTellerMigrationBuild \ Sources \ blah.sln”(默认目标)。TFS CI问题与SSIS包

构建成功。

“C:\构建\ 1 \ NetTellerMigration \ blahBuild的\ Sources \ blah.sln”(默认目标)(1) - > (blah_b目标) - > 的MSBuild:警告MSB4078:项目文件“等等\ blah.dtproj“不受MSBuild支持,无法构建。 [C:\构建\ 1 \ NetTellerMigration \ NetTellerMigrationBuild \源头\ blah.sln]

1 Warning(s) 
0 Error(s) 

已用时间00:00:00.42

我现在有TFS2010与SQLEXPRESS和安装即时尝试'不适当'来实现对SSIS包的持续集成。我的目标是创建一个由代码签入触发的构建。我有一个构建定义到doso,但是显示了上面显示的警告,没有'.dtsx'文件被复制到构建目录中?

我相信它与.NET的构建代理定位v4有关,但我可能是错的。无论如何,任何有此经验的人都可以从中获得帮助。

回答

6

MSBuild无法构建SSIS项目(.dtproj),因为这些项目的格式是VS2010之前的版本。这里要做的最好的事情是将MSBuild安装到SSIS项目中。您可以创建一个空的C#项目来执行此操作。然后,打开在文本编辑器中的新项目的.csproj文件和BeforeBuild目标设置为以下:

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

调整为您的项目等等/ blah.dtproj路径。这将运行devenv的VS2008版本来构建SSIS项目。

下面是整个.csproj的文件可能是什么样子的样本:

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

黑客攻击的一位。即时通讯尝试整合CI构建,如果我这样做,这将无法正常工作。必须有更优雅的方式? – Christo

+0

我同意,但我不认为有另一种方式。 TFS构建代理仅适用于MSBuild脚本。我假定BIDS的下一个版本中的项目文件将与MSBuild一起使用。你可以看看最新的CTP的SQL Server 2012. –

+0

好的谢谢布伦特。对2012年CTP进行了快速审视,但功能规范中没有详细说明这一特定问题。只能假设它的地址。再次感谢。 – Christo

0

我不得不稍微tweek我的目标得到它的工作:

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