2015-12-01 66 views
0

我正在尝试为我的项目创建CI Continuous Integration我的项目结构如下。无法连接错误使用TFS的持续集成

Solution 
|_ WebApi 1 
|_ WebApi 2 
|_ WebApi 3 
|_ Website "Single Page App" 

我创建了一个网络部署的每个服务每次我需要发布的同名应用它来部署自动服务器。

我创建了一个批处理脚本来运行发布,所以这是半自动的方法。

我想创建一个CI Continuous Integration所以我创建了一个新的生成定义到我的项目,并添加如下配置

General

Trigger

Source Setting

Build Definition

Process

以下错误在我看来 Error

我在生成定义的配置很想念?

+0

这些只是缺少依赖关系。你是否在源代码管理中包含了你的软件包?你只需要NuGet repositories.config或packages.configs,否则NuGet将不会得到这些包,因为它认为它已经有了它们。或者,您是否在解决方案属性中启用了包恢复? – Rodders

+0

我已经在解决方案中启用了Nuget,并通过添加全局环境变量“EnableNuGetPackageRestore”在该服务器中启用Nuget,并将其值设置为true 关于将我的软件包包含到源代码管理。我不应该把它包括到源代码控制中,因为我想让nuget发挥它的作用,所以我让nuget更新包中的每个解决方案中包含的 –

+0

只需要清楚。您的packages.config文件在源代码管理中,但实际的软件包本身不是。正确? – Rodders

回答

1

根据错误信息,问题可能是由于Nuget包未正确恢复而导致的。

您可以按照此博客中的步骤恢复软件包:https://docs.nuget.org/consume/package-restore/team-build)。

一些关键的步骤是:

  1. 添加nuget.config和.tfignore文件的解决方案。

  2. 在解决方案文件夹的根路径下添加一个build.proj文件。

  3. 在解决方案文件夹的根路径下创建一个名为tools的文件夹。在工具文件夹下创建NuGet子文件夹,在工具\ NuGet路径下下载并保存nuget.exe。

  4. 将nuget.config,.tfignore,build.proj和tools \ NuGet \ nuget.exe签入到TFS版本控制中。

  5. 修改构建定义以选择构建build.proj文件。
    然后,您将在TFS构建过程中成功恢复NuGet包。
+0

感谢您的帮助,但我仍然有一个问题在'C:\ Builds \ 5 \ ADSVC \ HCMS - 继续Integration \ src \ build上运行。 proj'但文件夹'5'不包含在'Builds'文件夹中,当偶然传递为'C:\ Builds \ 1 \ ADSVC \ HCMS - Continues Integration \ src \ build.proj时,我只有一个名为'1'的文件夹'构建成功 –

+0

该数字应该表示构建代理,您是否有多个构建代理?你在使用TFS 2013吗? –

+0

我没有多个构建代理只有一个。是的,我正在使用TFS 2013和建设代理属性,我喜欢以下'$(SystemDrive)\ Builds \ $(BuildAgentId)\ $(BuildDefinitionPath)'我认为这里的问题是'$(BuildAgentId)'是随机的我使它成为静态 –