mcs给我警告CS1701?

时间:2016-02-01 03:50:43

标签: .net compiler-errors mono json.net

我有一个用C#编写的目标,在Windows上使用.NET版本4.6.1编写,我也在Debian Jessie上使用mcs on mono 4.2.1编译。

我用来编译程序的命令是

$DLLS

其中$CURRENTDIRwarning CS1701: Assuming assembly reference `Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' matches assembly `Newtonsoft.Json, Version=8.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'. You may need to supply runtime policy Compilation succeeded - 1 warning(s) 中的DLL列表。

困扰我的是编译器抛出以下警告。该程序按预期工作,但我对出现此警告的原因以及我可以如何修复它的方法毫无头绪。

$ grep -rh Newtonsoft .
<Reference Include="Newtonsoft.Json, Version=8.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
  <HintPath>..\packages\Newtonsoft.Json.8.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<package id="Newtonsoft.Json" version="8.0.2" targetFramework="net461" />
using Newtonsoft.Json;
using Newtonsoft.Json;
using Newtonsoft.Json;
using Newtonsoft.Json;
using Newtonsoft.Json;

项目中引用Newtonsoft.Json的所有行

$ monodis --assembly Newtonsoft.Json.dll | grep Version
Version:       8.0.0.0
$ strings Newtonsoft.Json.dll | egrep '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$'
8.0.2.19309

根据Refresh tokens in oauth2 should not be replaced when getting a new access token中推荐的这些命令,引用的DLL是版本8.0.0.0,我尝试通过NuGet在Windows上(通过Visual Studio 2015)和Linux通过How to get the AssemblyVersion of a .Net file in Linux获取最新版本(3.3.0)。

LoadLibraryEx

该项目最初使用的是Newtonsoft.Json v7,但在我在Linux下编译之前已更新到8.0.2。

0 个答案:

没有答案