【问题标题】:TFS 2015 CI - Build artifacts are not generating for Console application in the solution which has web, console and WCF projectsTFS 2015 CI - 没有为具有 Web、控制台和 WCF 项目的解决方案中的控制台应用程序生成构建工件
【发布时间】:2017-06-24 02:37:10
【问题描述】:

我正在使用 TFS 2015 CI 为项目解决方案创建持续集成,该项目解决方案结合了 Web 项目、WCF 项目、类库和控制台应用程序。该项目的结构如下图所示

Project Solution
 Project 1 (Web UI Project)
 Project 2 (WCF Project)
 Project 3 (Console Application-Batch Scheduler)
 Project 4 ( Class library)
 Project 5 ( Class library)
 Project 6 ( Class library)

我已添加 MSBuild 任务并包含以下参数,

/p:DeployOnBuild=true /p:Configuration=Release /p:OutDir=$(Build.ArtifactStagingDirectory) 

问题是,在 Build artifacts 目录中为 Web 、 WCF 和类库项目生成的所有 dll 和构建文件,但不是针对控制台应用程序项目。

我是否遗漏了 MS Build 参数中的任何内容,或者是否需要任何项目特定设置来为构建工件目录中的控制台应用程序生成 exe 和发布文件。

注意:在 TFS CI 中,由于 Web 项目中的一些长名称问题,构建部分成功,但在本地解决方案中构建成功。

谢谢,

【问题讨论】:

  • 您是否构建了解决方案?
  • @k7s5a 是的,我可以在本地构建它。
  • 不清楚什么是 Bath Scheduler 控制台应用程序。只需创建一个与您结构相同的普通控制台应用程序。无法重现您的问题。当您在本地构建时,是否生成了控制台应用程序的 exe 和发布文件?除了你使用的是哪个版本,vNext 还是 XAML 版本?
  • @Patrick-MSFT Bath Scheduler Console Application 只是一个简单的控制台应用程序,我们用于调度批次。

标签: asp.net-mvc msbuild continuous-integration console-application tfs-2015


【解决方案1】:

首先浏览包含所有文件夹和子文件夹的构建工件目录。您可能没有注意到它。在构建工件目录中生成控制台应用程序的 exe 和发布文件不需要任何项目特定设置。

Build.ArtifactStagingDirectory

之前复制任何工件的代理上的本地路径 被推到目的地。例如:c:\agent_work\1\a。

使用此文件夹的典型方法是发布您的构建工件 使用复制文件和发布构建工件步骤。

只需确保您已将工件发布到服务器或共享文件夹。为了缩小这个问题,您也可以尝试直接构建控制台应用程序项目,看看.exe是否生成成功。并创建一个新的普通控制台应用程序而不是控制台应用程序批处理调度程序,以缩小与它相关的问题。

【讨论】:

  • 我不得不使用 MSBuild 任务来构建控制台应用程序和 VisualStudioBuild 任务来构建应用程序的其余部分。 MSBuild 任务需要 *.*Proj 文件来构建项目,但 VisualStudioBuild 任务只需要 *.*sln 文件来构建项目。由于某种原因,我的控制台应用程序没有在 *.*sln 项目文件中引用。
猜你喜欢
  • 1970-01-01
  • 2016-07-10
  • 1970-01-01
  • 2012-03-28
  • 1970-01-01
  • 1970-01-01
  • 2012-06-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多