【问题标题】:NuGet: cannot find AssemblyNuGet:找不到程序集
【发布时间】:2014-11-13 12:51:18
【问题描述】:

我有一个使用 teamcity 构建的项目。在 teamcity 中,使用 NuGet 下载包

在我们的 VS 本地机器上一切正常,但 Buildserver 抛出:

[13:30:31][ResolveAssemblyReference] 主要参考 “System.Web.Http”。

[13:30:31][ResolveAssemblyReference] C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1635, 5):警告 MSB3245:无法解析此引用。不能 找到程序集“System.Web.Http”。检查以确保组装 存在于磁盘上。如果您的代码需要此参考,您可以 得到编译错误。

[13:30:31][ResolveAssemblyReference] 用于 SearchPath “{HintPathFromItem}”。

[13:30:31][ResolveAssemblyReference] 已考虑 "..\packages\Microsoft.AspNet.WebApi.Core.5.0.0\lib\net45\System.Web.Http.dll", 但它并不存在。

恕我直言,它应该在包含在包 conf 中的 WebApi.Core 中:

<?xml version="1.0" encoding="utf-8"?>

<packages>
  <package id="Autofac" version="3.2.0" targetFramework="net45" />
  <package id="Autofac.Mvc4" version="3.1.0" targetFramework="net45" />
  <package id="FluentValidation" version="5.0.0.1" targetFramework="net45" />
  <package id="libphonenumber-csharp" version="4.10.0.62" targetFramework="net45" />
  <package id="log4net" version="2.0.3" targetFramework="net451" />
  <package id="Microsoft.AspNet.WebApi" version="5.0.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.Client" version="5.1.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.Core" version="5.0.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.OData" version="5.0.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.Tracing" version="5.0.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="5.0.0" targetFramework="net45" />
  <package id="Microsoft.Data.Edm" version="5.6.0" targetFramework="net45" />
  <package id="Microsoft.Data.OData" version="5.6.0" targetFramework="net45" />
  <package id="Newtonsoft.Json" version="4.5.11" targetFramework="net451" />
  <package id="System.Spatial" version="5.6.0" targetFramework="net45" />
</packages>

TeamCity 中已经有一个 NuGet-Step,它似乎可以工作:

install] NuGet command: E:\buildAgent1\plugins\nuget-agent\bin\JetBrains.TeamCity.NuGetRunner.exe E:\buildAgent1\tools\NuGet.CommandLine.DEFAULT.nupkg\tools\NuGet.exe install E:\buildAgent1\work\78d708595d531418\Common\My.RestConnector\packages.config -OutputDirectory E:\buildAgent1\work\78d708595d531418\Common\packages

[13:30:15][install] Starting: E:\buildAgent1\temp\agentTmp\custom_script3183978839714032953.cmd

[13:30:15][install] in directory: E:\buildAgent1\work\78d708595d531418\Common\My.RestConnector

[13:30:15][install] JetBrains TeamCity NuGet Runner 8.0.27692.9

[13:30:15][install] Registered additional extensions from paths: E:\buildAgent1\plugins\nuget-agent\bin\plugins-2.5

[13:30:15][install] Starting NuGet.exe 2.8.50506.491 from 

    E:\buildAgent1\tools\NuGet.CommandLine.DEFAULT.nupkg\tools\NuGet.exe

    [13:30:16][install] Installing 'FluentValidation 5.0.0.1'.

    [13:30:16][install] Installing 'Autofac 3.2.0'.

    [13:30:16][install] Installing 'libphonenumber-csharp 4.10.0.62'.

    [13:30:16][install] Installing 'Autofac.Mvc4 3.1.0'.

    [13:30:16][install] Successfully installed 'Autofac.Mvc4 3.1.0'.

    [13:30:16][install] Installing 'Microsoft.AspNet.WebApi 5.0.0'.

    [13:30:16][install] Successfully installed 'Microsoft.AspNet.WebApi 5.0.0'.

    [13:30:16][install] Successfully installed 'FluentValidation 5.0.0.1'.

    [13:30:16][install] Successfully installed 'Autofac 3.2.0'.

    [13:30:16][install] Installing 'Microsoft.AspNet.WebApi.Tracing 5.0.0'.

    [13:30:16][install] Installing 'Microsoft.AspNet.WebApi.OData 5.0.0'.

    [13:30:16][install] Successfully installed 'Microsoft.AspNet.WebApi.Tracing 5.0.0'.

    [13:30:16][install] Installing 'Microsoft.AspNet.WebApi.Client 5.1.0'.

    [13:30:16][install] Successfully installed 'libphonenumber-csharp 4.10.0.62'.

    [13:30:16][install] Successfully installed 'Microsoft.AspNet.WebApi.OData 5.0.0'.

    [13:30:16][install] Installing 'Microsoft.AspNet.WebApi.WebHost 5.0.0'.

    [13:30:16][install] Successfully installed 'Microsoft.AspNet.WebApi.WebHost 5.0.0'.

    [13:30:16][install] Successfully installed 'Microsoft.AspNet.WebApi.Client 5.1.0'.

    [13:30:17][install] Installing 'Microsoft.Data.OData 5.6.0'.

    [13:30:17][install] Installing 'Newtonsoft.Json 4.5.11'.

    [13:30:17][install] Installing 'Microsoft.Data.Edm 5.6.0'.

    [13:30:17][install] Installing 'System.Spatial 5.6.0'.

    [13:30:17][install] Successfully installed 'Newtonsoft.Json 4.5.11'.

    [13:30:17][install] Successfully installed 'System.Spatial 5.6.0'.

    [13:30:17][install] Successfully installed 'Microsoft.Data.Edm 5.6.0'.

    [13:30:18][install] Successfully installed 'Microsoft.Data.OData 5.6.0'.

    [13:30:18][install] All packages listed in packages.config are already installed.

【问题讨论】:

    标签: c# .net msbuild teamcity nuget


    【解决方案1】:

    您没有在构建服务器上下载软件包 包括:

    nuget restore your.sln 
    

    在构建服务器上的构建脚本中(如果您正在使用构建脚本)。

    “恢复解决方案模式”仅在 nuget 2.7 中可用

    但在 TeamCity 中,您可以选择“NuGet 安装程序”步骤,这将为您完成。以下是配置 nuget 安装程序步骤的示例:http://img.hihi.si/Upload/1tFR.png

    确保重新排序步骤并在构建步骤之前使用此步骤。

    编辑 1:在构建步骤中包含构建日志后,我注意到 Installing Microsoft.AspNet.WebApi.Core 没有输出。这可能是很多事情,例如项目不包含在解决方案中,packages.config 不包含在源代码控制中......,与解决方案/项目/packages.config 的关系有些混乱尝试将虚拟包添加到该 mvc 项目中并检查您的输出构建服务器,如果构建日志中没有该包的踪迹,则项目由于某种原因被跳过,如果包包含在构建日志中,则问题出在该包上。我也会尝试重新安装这个包。

    【讨论】:

    • 我更新了我的问题; NuGet 已在构建代理上运行
    【解决方案2】:

    将 Microsoft.AspNet.WebApi 更新到 5.2.2 解决了这个问题

    【讨论】:

    • 我也建议“我也尝试重新安装这个软件包。”
    • 不是重新安装,而是更新。 :)
    猜你喜欢
    • 2019-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 2018-12-11
    • 2013-10-08
    • 2011-09-23
    相关资源
    最近更新 更多