我有几个项目都包含json.net 6.0.3 NuGet包。当我添加:
using Newtonsoft.Json;
在构建时得到以下错误:
1> F: TwinkyTalk TwinkyTalk。csproj: error PS0099: unhandling exception(3.1.48.0, 32位,CLR 4.5, Release):PostSharp.Sdk.CodeModel.AssemblyLoadException: Cannot find assembly"newtonsoft。Json,版本=4.5.0.0,文化=中性,都30 ad4fe6b2a6aeed"。(版本不匹配)1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099: ============PostSharp组装加载日志 ===================1> F: TwinkyTalk TwinkyTalk。csproj: error PS0099: LOG: Finding the具有绑定身份newtonsoft的程序集。json、version = 4.5.0.0文化=中立,都30 ad4fe6b2a6aeed"。1> F: TwinkyTalk TwinkyTalk。csproj: error PS0099: LOG: Found fileF: 包 Newtonsoft.Json.6.0.3 lib net45 Newtonsoft.Json.dll"newtonsoft身份"。Json,版本=6.0.0.0,文化=中性,都30 ad4fe6b2a6aeed processorarchitecture = msil"。1> F: TwinkyTalk TwinkyTalk。csproj: error PS0099: LOG: Reference不匹配的F: 包 Newtonsoft.Json.6.0.3 lib net45 Newtonsoft.Json.dll"[VersionMismatch]。1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099:日志:探测位置"C: ProgramData PostSharp 3.1.48 bin.Release Newtonsoft.Json.exe"因为这个目录被显式地添加到搜索路径[File]没有找到)。1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099:日志:探测位置"C: ProgramData PostSharp 3.1.48 bin.Release Newtonsoft.Json.dll"因为这个目录被显式地添加到搜索路径[File]没有找到)。1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099:日志:探测位置"C: ProgramData PostSharp 3.1.48 bin.Release Newtonsoft.Json.winmd"因为这个目录被显式地添加到搜索路径[File]没有找到)。1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099:日志:探测位置"F:binreleaseTwinkyTalkNewtonsoft.Json.exe"因为这个目录被显式地添加到搜索路径[File]没有找到)。1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099:日志:找到文件"F:binreleaseTwinkyTalkNewtonsoft.Json.dll"newtonsoft身份"。Json,版本=6.0.0.0,文化=中性,都30 ad4fe6b2a6aeed processorarchitecture = msil"。1> F: TwinkyTalk TwinkyTalk。csproj: error PS0099: LOG: Reference不匹配'F:binreleaseTwinkyTalkNewtonsoft.Json.dll'[VersionMismatch]。1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099:日志:探测位置F: bin TwinkyTalk Newtonsoft.Json发布。因为这个目录被显式添加到搜索路径[File Not Found]。1> F: TwinkyTalk TwinkyTalk。csproj: error PS0099: LOG:正在探测location 'F:TwinkyTalkobjReleaseNewtonsoft.Json.exe'因为这个目录被显式添加到搜索路径[File Not Found]。1> F: TwinkyTalk TwinkyTalk。csproj: error PS0099: LOG:正在探测location 'F:TwinkyTalkobjReleaseNewtonsoft.Json.dll'因为这个目录被显式添加到搜索路径[File Not Found]。1> F: TwinkyTalk TwinkyTalk。csproj: error PS0099: LOG:正在探测位置的F: TwinkyTalk obj Newtonsoft.Json发布。winmd",因为这个目录被显式地添加到搜索路径[File Not]发现)。1> F: TwinkyTalk TwinkyTalk。csproj: error PS0099: LOG:正在探测location 'C:Program Files (x86)Reference微软组件 Framework.NETFramework v4.5.1 Newtonsoft.Json.exe"因为这个目录被显式地添加到搜索路径[File]没有找到)。1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099:日志:探测位置"C:Program Files (x86)Reference"微软组件 Framework.NETFramework v4.5.1 Newtonsoft.Json.dll"因为这个目录被显式地添加到搜索路径[File]没有找到)。1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099:日志:探测位置"C:Program Files (x86)Reference"微软组件 Framework.NETFramework v4.5.1 Newtonsoft.Json.winmd"因为这个目录被显式地添加到搜索路径[File]没有找到)。1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099:日志:探测位置"C:Program Files (x86)Reference"微软组件 Framework.NETFramework v4.5.1 外墙 Newtonsoft.Json.exe '因为这个目录被显式地添加到搜索路径[File]没有找到)。1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099:日志:探测位置"C:Program Files (x86)Reference"微软组件 Framework.NETFramework v4.5.1 外墙 Newtonsoft.Json.dll '因为这个目录被显式地添加到搜索路径[File]没有找到)。1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099:日志:探测位置"C:Program Files (x86)Reference"微软组件 Framework.NETFramework v4.5.1 外墙 Newtonsoft.Json.winmd '因为这个目录被显式地添加到搜索路径[File]没有找到)。1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099:日志:在广汽找Newtonsoft。Json,版本=4.5.0.0,文化=中性,都30 ad4fe6b2a6aeed processorArchitecture = x86。1> F: TwinkyTalk TwinkyTalk。csproj: error PS0099: LOG: Looking in GACNewtonsoft。Json,版本=4.5.0.0,文化=中性,都30 ad4fe6b2a6aeed processorArchitecture = msil。1> F: TwinkyTalk TwinkyTalk。csproj: error PS0099: LOG: Looking in GACNewtonsoft。Json,版本=4.5.0.0,文化=中性,都30 ad4fe6b2a6aeed。1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099: LOG:程序集newtonsoft。json、version = 4.5.0.0文化=中性,publickeytoken=30ad4fe6b2a6aeed'未找到。1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099:=============================================================== 1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099: atPostSharp.Sdk.CodeModel.Domain。GetAssembly (IAssemblyName assemblyName,BindingOptions BindingOptions) 1>F:TwinkyTalkTwinkyTalk。csproj:错误PS0099: atPostSharp.Sdk.CodeModel.AssemblyRefDeclaration。^ 5 ypb0scd (BindingOptions_0) 1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099: at PostSharp.Sdk.Extensibility.Tasks.MulticastAttributeTask.^SgrhoGlQ(AssemblyRefDeclaration .;_0) 1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099: at PostSharp.Sdk.Extensibility.Tasks.MulticastAttributeTask.^+GwnKh4ZYHu3()1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099: atPostSharp.Sdk.Extensibility.Tasks.MulticastAttributeTask.Execute ()1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099: atPostSharp.Sdk.Extensibility.Project。ExecutePhase(字符串阶段)1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099: atPostSharp.Sdk.Extensibility.Project.Execute ()1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099: atPostSharp.Hosting.PostSharpObject.ExecuteProjects ()1> F: TwinkyTalk TwinkyTalk。csproj:错误PS0099: atPostSharp.Hosting.PostSharpObject.InvokeProject (ProjectInvocationprojectInvocation)。
我找不到任何关于"newtonsoft"的引用。Json, version=4.5.0.0,"在项目中,不确定为什么它正在寻找。
我尝试将"构建主机"PostSharp项目属性设置为管理,但仍然得到相同的异常。
当某些第三方库引用较旧版本的程序集(Newtonsoft. exe)时,通常会发生这种情况。在本例中为Json)。这个问题可以通过在web.config/app中指定绑定重定向来解决。配置文件。
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-6.0.3.0" newVersion="6.0.3.0"/>
</dependentAssembly>
然而,你还需要告诉PostSharp在哪里寻找绑定重定向配置。你可以通过在你的*中设置PostSharpHostConfigurationFile属性来实现。csproj文件:
<PropertyGroup>
<PostSharpHostConfigurationFile>web.config</PostSharpHostConfigurationFile>
</PropertyGroup>
有另一个类似的问题在SO (PostSharp assemblyloadeexception Autofac),和一个相关的博客文章。
结果是,虽然异常来自PostSharp的补救措施是更新所有的NuGet包。