更新:因此,我登录到服务器并用VS2013打开了该项目。我在解决方案上下文菜单上单击了"启用nuget包还原"。现在,它构建在服务器上。问题是,我不知道如何在VS 2015中做同样的事情。没有右键单击菜单。我已经在"选项"中启用了"允许自动恢复程序包"。-结束更新
我在Visual Studio 2015中有一个项目。我可以在本地机器上成功构建并运行它。它使用从Nuget获得的Newtonsoft.Json(Json.net(。当我签入并且我的持续集成构建在构建服务器上运行时,它会抛出一个异常,即它无法定位JSON.net程序集:
The type or namespace name 'Newtonsoft' could not be found (are you missing a using directive or an assembly reference?)
C:WindowsMicrosoft.NETFramework64v4.0.30319Microsoft.Common.targets (1605): Could not resolve this reference. Could not locate the assembly "Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
我到处都看了看是什么导致了Nuget包的失败。是因为我在使用Visual Studio 2015吗?Nuget被顶起来了吗?
有人经历过这个问题吗?
根据packages.config文件中的条目仔细检查项目中的引用。
我也有同样的错误,发现该项目在参考文献中引用了Newtonsoft.Json 4.5.1,但在packages.config中,条目如下:
<package id="Newtonsoft.Json" version="5.0.8" targetFramework="net45" />
将packages.config中的条目更改为4.5.1而不是5.0.8解决了问题。
<package id="Newtonsoft.Json" version="4.5.1" targetFramework="net45" />
我通过检查CI构建服务器上的本地工作文件夹发现了这一点,并发现它试图从中提取.dll的位置在其中不可用;然后我追溯了一下原因。(这个问题的另一个可能原因是NuGet包被弃用。我也有一个包抛出了同样的错误。(我不确定它们是如何不同步的;这是一个最初由我继承的其他人进行的项目。
希望,即使这不能解决你的问题,这也会帮助其他人。