Visual studio 在CI服务器上的内置MSBuild期间从解决方案中排除项目

Visual studio 在CI服务器上的内置MSBuild期间从解决方案中排除项目,visual-studio,build,msbuild,continuous-integration,teamcity,Visual Studio,Build,Msbuild,Continuous Integration,Teamcity,我正在Visual Studio中开发一个包含多个项目的解决方案: 解决方案。sln: ->项目1.csproj ->projectnc2.csproj ->ProjectExc1.csproj ->ProjectExc1.csproj 我处理所有项目,当我推送我的VCS(在我的例子中是Github)时,它会触发CI服务器(在我的例子中是TeamCity)上的构建配置。TeamCity server使用MSBuild,它将Solution.sln作为参数并生成它。但是,我希望在构建过程中忽略

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

解决方案。sln:

  • ->项目1.csproj
  • ->projectnc2.csproj
  • ->ProjectExc1.csproj
  • ->ProjectExc1.csproj
我处理所有项目,当我推送我的VCS(在我的例子中是Github)时,它会触发CI服务器(在我的例子中是TeamCity)上的构建配置。TeamCity server使用MSBuild,它将Solution.sln作为参数并生成它。但是,我希望在构建过程中忽略某些项目(例如ProjectExc1.csproj、ProjectExc2.csproj)。如果我从Solution.sln文件中删除项目引用,我可以执行此步骤,但我认为必须有更好的方法从构建特定项目中排除


有人知道如何将MSBuild或解决方案本身配置为在CI服务器上生成解决方案时忽略这些项目吗

在Visual Studio中创建新的生成配置(从):

创建排除项目的解决方案配置的步骤 在菜单栏上,选择构建、配置管理器。 在活动解决方案配置列表中,选择。 在名称框中,输入解决方案配置的名称。 在“复制设置自”列表中,选择要作为新配置基础的解决方案配置(例如,调试), 然后选择OK按钮。 在“配置管理器”对话框中,清除要排除的项目的“生成”列中的复选框,然后单击 选择关闭按钮。 在“标准”工具栏上,验证新解决方案配置是否为解决方案中的活动配置 配置框。 在菜单栏上,选择“生成、重建解决方案”

然后在TeamCity中,将配置设置为使用新的构建配置名称构建,而不是在调试/发布中构建


如果您是从MsBuild脚本调用,则同样适用。只需更改正在调用的配置。

可能重复-因此,要么创建一个只包含所需项目的新解决方案,要么编写一个只生成所需项目的msbuild脚本。是的,在第一次运行时,该解决方案不起作用,但在仔细检查依赖关系后,它就起作用了。