从构建服务器中的错误位置复制Newtonsoft.Json.dll

时间:2015-10-16 15:06:31

标签: c# reference json.net blend build-server

我在这里遇到了一些奇怪的问题,有一个在Visual Studio中正常构建的软件,所有使用NuGet添加的引用,以及Newtonsoft.Json.dll在packages文件夹中以及该文件夹的引用点。

在构建服务器中构建时,我们注意到测试失败并且进一步发现,从Blend文件夹中发现Newtonsoft.Json.dll实际上是错误的。

来自构建日志:

  

从" D:\ APPS \ Microsoft Visual Studio复制文件   12.0 \混合\ Newtonsoft.Json.dll"到" D:\ TB \ 2 \ PLWRO-WebPP \ WebPP-Main-Dev-CI \ bin \ Newtonsoft.Json.dll"。

为了解决这个问题,我将另一个东西中的Newtonsoft.Json.dll从blend文件夹重命名,然后构建按预期正常工作。

我的问题是,为什么?!?!?似乎构建在Blend文件夹之前寻找引用,而不是在提示路径中的设置位置 - 参见下文。

<Reference Include="Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>

1 个答案:

答案 0 :(得分:0)

您可以尝试在HintPath元素之后添加<private>true</private>元素。这应该强制复制到本地目录。

另一个有趣的部分是,您正在寻找旧版本(v4.5.0.0),同时在您的软件包中引用新版本(7.0.1)。

在Visual Studio中,您可以尝试让Nuget更新此库的7.x引用,然后查看是否有助于MSBuild从更具体的位置提取库。