【发布时间】:2014-02-04 06:51:31
【问题描述】:
我尝试使用 TeamCity 构建解决方案。为了减少我们的存储库大小,不要将 DLL 包含到存储库中,而是在构建解决方案时使用 NuGet 接收任何包的当前实际版本。 我们可以在本地机器上构建解决方案,但在 TeamCity-Buildserver 上收到错误:
The type or namespace name 'Formatting' does not exist in the namespace 'System.Net.Http' (are you missing an assembly reference?)
我认为 nuget 包有问题。 System.Net.Http.Formatting 应该在 Teamcity 下载的 NuGet-Package Microsoft.AspNet.WebApi.Client 5.0.0 中。但似乎构建命令(Microsoft Visual Studio 解决方案运行程序)查看 Microsoft.Net.Http 2.2.xx 而不是“格式化”-命名空间
这只是我的猜测,出了什么问题。任何线索如何解决这个问题?
我的包-配置:
<packages>
<package id="log4net" version="2.0.3" targetFramework="net45" />
<package id="Microsoft.Bcl.Build" version="1.0.10" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.0.0" targetFramework="net45" />
<package id="System.Net.Http.Formatting" version="4.0.20505.0" targetFramework="net45" />
<package id="Newtonsoft.Json" version="4.5.11" targetFramework="net45" />
</packages>
【问题讨论】:
-
您是否遇到过这个错误?:nuget.codeplex.com/workitem/3521
-
没有。那不是问题
-
尝试查找根本原因错误;在日志中搜索“无法解析此引用”。可能是由于目标框架不匹配或其他原因造成的。在此处发布根本原因。
-
感谢您的宝贵时间,杰克。我解决了这个烦人的问题。不知道它是否是“黄金”解决方案,但它确实有效。
-
你能发布你的包配置吗?您是否可能实际上指定了不合适的最低版本? (您的开发机器可能已经选择了您实际需要的最新版本,但您的构建服务器使用的是旧版本。)如果您在 clean 开发机器上检查您的解决方案并使用它来从 NuGet 恢复包,这行得通吗?我假设您仍然对更清洁的方法感兴趣:)