Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在生成项目引用和包的过程中,正在安装和引用不同版本的nuget包_C#_Visual Studio_Rabbitmq_Nuget_Teamcity - Fatal编程技术网

C# 在生成项目引用和包的过程中,正在安装和引用不同版本的nuget包

C# 在生成项目引用和包的过程中,正在安装和引用不同版本的nuget包,c#,visual-studio,rabbitmq,nuget,teamcity,C#,Visual Studio,Rabbitmq,Nuget,Teamcity,在我们的构建服务器上,我有一个解决方案,其中所有项目都引用rabbit client tools Nuget包的3.6版。然而,当我在构建服务器上构建解决方案时,它似乎正在下载rabbit客户端工具的4.0.2版本。即使在我的代码中,或者在我使用的easynetq库中,都没有对这个dll的引用 我试过: 正在清除服务器上的nuget缓存 清理签出目录 更改rabbit客户端nuget版本 已检查app.config中的程序集绑定版本 在生成之前,所有这些都是正确的 顺便说一句,我不知道这是否

在我们的构建服务器上,我有一个解决方案,其中所有项目都引用rabbit client tools Nuget包的3.6版。然而,当我在构建服务器上构建解决方案时,它似乎正在下载rabbit客户端工具的4.0.2版本。即使在我的代码中,或者在我使用的easynetq库中,都没有对这个dll的引用

我试过:

  • 正在清除服务器上的nuget缓存
  • 清理签出目录
  • 更改rabbit客户端nuget版本
  • 已检查app.config中的程序集绑定版本
在生成之前,所有这些都是正确的

顺便说一句,我不知道这是否会有很大的不同,但是应用程序中的程序集重定向和我的应用程序的web配置也被切换到4,尽管我的本地代码是3.6.5

而且,通过VisualStudio2015,这似乎构建得很好,所以我假设这一定是可以留在服务器上与Nuget相关的东西

Packages.Config:

<packages>
  <package id="EasyNetQ" version="0.62.1.445" targetFramework="net452" />
  <package id="EasyNetQ.Management.Client" version="0.51.1.105" targetFramework="net452" />
  <package id="GuerrillaNtp" version="1.0.0.0" targetFramework="net452" />
  <package id="log4net" version="2.0.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.Owin" version="5.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.OwinSelfHost" version="5.2.3" targetFramework="net452" />
  <package id="Microsoft.Owin" version="3.0.1" targetFramework="net452" />
  <package id="Microsoft.Owin.Diagnostics" version="3.0.1" targetFramework="net452" />
  <package id="Microsoft.Owin.Host.HttpListener" version="3.0.1" targetFramework="net452" />
  <package id="Microsoft.Owin.Hosting" version="3.0.1" targetFramework="net452" />
  <package id="Microsoft.Owin.SelfHost" version="3.0.1" targetFramework="net452" />
  <package id="mongocsharpdriver" version="2.2.3" targetFramework="net452" />
  <package id="MongoDB.Bson" version="2.2.3" targetFramework="net452" />
  <package id="MongoDB.Driver" version="2.2.3" targetFramework="net452" />
  <package id="MongoDB.Driver.Core" version="2.2.3" targetFramework="net452" />
  <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net452" />
  <package id="OctoPack" version="3.0.45" targetFramework="net452" developmentDependency="true" />
  <package id="Owin" version="1.0" targetFramework="net452" />
  <package id="RabbitMQ.Client" version="3.6.5" targetFramework="net452" />
  <package id="Swashbuckle.Core" version="5.4.0" targetFramework="net452" />
  <package id="Topshelf" version="3.1.2" targetFramework="net452" />
</packages>

尝试在构建服务器上运行“手动nuget还原”……看看是否正常工作。暂时将其推送到另一个“packages”目录。我在这里用过“我的包裹”


您可以从以下位置获取命令行nuget.exe:

这里的关键是:

您将获得哪些子文件夹

“\MyPackages\RabbitMQ.Client.4.0.2”

和/或

“\MyPackages\RabbitMQ.Client.3.6.5”

如果“手动nuget还原”工作正常 (在本例中,它将只获取子文件夹“\MyPackages\RabbitMQ.Client.3.6.5”),然后在生成过程中发生了一些超出正常nuget工作流的事情

操作回答编辑
这一系列的调查并没有完全解决这个问题,但确实指向了在构建运行时更改包文件的其他方面。结果是TeamCity在其nuget软件包还原中有一个自动更新功能,但没有记录

请发布您的packages.config文件。您是说在“packages”目录中有一个子文件夹名为“\packages\RabbitMQ.Client.4.0.2”(~而不是“\packages\RabbitMQ.Client.3.6.5”)。。。。和/或生成日志引用“4.0.2”?在生成服务器上执行此操作。删除“.\packages”下的所有子文件夹,并仅在packages.config文件上运行手动nuget还原。如下所示:nuget.exe restore.\packages.config-PackagesDirectory.\mypackages您可以在这里获得命令行nuget.exe:这是一些严重的巫毒。至少你离这个问题更近了。我在这里尝试了你的packages.config,没有任何问题……所以我不知道。当我遇到伏都教问题时,我会使用“manual pull packages.config”技巧,但以前从未听说过。
nuget.exe restore .\packages.config -PackagesDirectory .\MyPackages