在CI服务器上的MSBuild中构建期间从解决方案中排除项目

时间:2014-03-14 08:49:25

标签: visual-studio build msbuild continuous-integration teamcity

我正在开发一个包含许多项目的Visual Studio解决方案:

Solution.sln:

  • - >的 ProjectInc1.csproj
  • - >的 ProjectInc2.csproj
  • - >的 ProjectExc1.csproj
  • - >的 ProjectExc1.csproj

我在所有项目上工作,当我推动我的VCS(在我的情况下是Github)时,它会触发CI服务器上的构建配置(在我的情况下是TeamCity)。 TeamCity服务器使用MSBuild,它将Solution.sln作为参数并构建它。但是我希望从构建中忽略某些项目(例如ProjectExc1.csproj,ProjectExc2.csproj)。如果我从Solution.sln文件中删除项目引用,我可以执行此步骤,但我认为必须有更好的方法从构建某个项目中排除。

在CI服务器上构建解决方案时,是否有人知道如何配置MSBuild或解决方案本身以忽略这些项目?

1 个答案:

答案 0 :(得分:17)

在Visual Studio中创建一个新的构建配置(来自http://msdn.microsoft.com/en-us/library/jj676765.aspx):

  

创建排除项目的解决方案配置       在菜单栏上,选择“生成”,“配置管理器”。       在“活动解决方案配置”列表中,选择。       在“名称”框中,输入解决方案配置的名称。       在Copy settings from列表中,选择要作为新配置基础的解决方案配置(例如,Debug),   然后选择确定按钮。       在“配置管理器”对话框中,清除要排除的项目的“构建”列中的复选框,然后   选择关闭按钮。       在“标准”工具栏上,验证新解决方案配置是否为解决方案中的活动配置   配置框。       在菜单栏上,选择Build,Rebuild Solution。

然后在TeamCity中,不是在Debug / Release中构建,而是使用新的构建配置名称来构建配置。

如果您使用MsBuild脚本进行调用,则同样适用。只需更改您正在呼叫的配置即可。