【问题标题】:Team Services Continuous Integration Build References Nuget FailsTeam Services 持续集成构建参考 Nuget 失败
【发布时间】:2017-03-03 15:27:22
【问题描述】:

我正在尝试使用 Team Services 进行持续集成以适用于我的解决方案。我的解决方案在本地构建,没有任何问题。 Nuget Install 上的构建过程失败:

Error: D:\a\_tasks\NuGetInstaller_333b11bd-d341-40d9-afcf-b32d5ce6f23b\0.2.29\node_modules\nuget-task-common\NuGet\3.5.0\NuGet.exe failed with return code: 1
Packages failed to install

解决方案或 packages.config 的路径设置为 SLN 文件名 (boilerplate.sln) 安装类型设置为 INSTALL

我不想设置 package.config 的路径,因为我在此解决方案中有多个项目。

如果我将安装类型设置为 RESTORE,Nuget 恢复任务会通过,但构建解决方案会失败并出现一堆警告和错误:

Warnings: (one of many but all similar)
C:\Program Files (x86)\MSBuild\14.0\bin\amd64\Microsoft.Common.CurrentVersion.targets(1820,5): Warning MSB3245: Could not resolve this reference. Could not locate the assembly "EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

Errors: (one of many but all similar)
src\DB\BoilerPlate.Data.Context\BoilerPlateContext.cs(3,23): Error CS0234: The type or namespace name 'Entity' does not exist in the namespace 'System.Data' (are you missing an assembly reference?)

我只是不明白这个过程是如何工作的,请帮助我是新手。

我的文件夹结构如下:

BoilerPlate.sln
packages
src
src\db
src\DB\BoilerPlate.Data.Context\
src\DB\BoilerPlate.Data.Context\package.config
src\DB\BoilerPlate.Data.Entities\

【问题讨论】:

  • "Restore" 是您正在寻找的。看起来实体框架可能没有安装在构建服务器上的全局程序集缓存中。检查 EntityFramework 是否作为 NuGet 包安装在您的解决方案中。
  • @jessehouwing 实体作为 NuGet 包安装。
  • 但它看起来像是从 GAC 加载的,否则错误消息将显示它期望程序集所在的路径。你能检查一下项目文件中的<reference 元素,看看它是否有指向包目录的提示路径吗?
  • @jessehouwing 引用 EntityFramework 的路径设置为我的 repo 中的包文件夹。
  • ..\..\..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll

标签: continuous-integration nuget azure-devops


【解决方案1】:

我从存储库中删除了“包”,然后在 Team Services 中运行构建并解决了问题。如果您使用的是“restore”,请将“packages”目录放在 gitignore 中。

【讨论】:

    【解决方案2】:

    我今天刚遇到这个错误。我通过使用我们的基本代码分支查看解决方案文件中的更改来修复此错误,并发现了一些不应该存在的旧行。我认为它们是错误合并的结果,应该在冲突解决期间被删除。

    为了解决这个问题,我只是删除了旧的引用并且一切都很好。

    Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Services", "Services", "{EAECFF2D-7339-4180-8E1E-6DF9EC9EB131}"
    EndProject
    {3C14F190-6B6A-4913-9681-AFD9B62850FA} = {EAECFF2D-7339-4180-8E1E-6DF9EC9EB131}
    {687ECE00-A567-40F3-BFF9-C3B639328F27} = {EAECFF2D-7339-4180-8E1E-6DF9EC9EB131}
    

    另请参阅有关同一主题的旧线程:Cannot restore nuget packages on VSTS (Packages failed to install)

    谢谢, 鱼

    【讨论】:

      猜你喜欢
      • 2016-08-16
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      • 2018-03-11
      • 1970-01-01
      • 1970-01-01
      • 2013-12-14
      • 1970-01-01
      相关资源
      最近更新 更多