我有几个项目都包含json.net 6.0.3 NuGet包。当我添加:
using Newtonsoft.Json;
构建时出现以下错误:
1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:未处理的异常 (3.1.48.0,32位,CLR 4.5,发布): PostSharp.Sdk.CodeModel.AssemblyLoadException:找不到程序集 ' newtonsoft.json,版本= 4.5.0.0,文化=中立, 公钥= 30ad4fe6b2a6aeed&#39 ;. [版本不匹配] 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:============ PostSharp Assembly Loading日志=================== 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志:查找 具有绑定标识的程序集&newtonsoft.json,版本= 4.5.0.0, culture = neutral,publickeytoken = 30ad4fe6b2a6aeed'。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志:找到的文件 ' F:\包\ Newtonsoft.Json.6.0.3 \ LIB \ net45 \ Newtonsoft.Json.dll'同 身份' newtonsoft.json,版本= 6.0.0.0,文化=中立, publickeytoken = 30ad4fe6b2a6aeed,processorarchitecture = msil'。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志:参考 不匹配 ' F:\包\ Newtonsoft.Json.6.0.3 \ LIB \ net45 \ Newtonsoft.Json.dll' [版本不匹配]。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099: 日志:探测位置 ' C:\ ProgramData \ PostSharp \ 3.1.48 \ bin.Release \ Newtonsoft.Json.exe' 因为此目录已明确添加到搜索路径[文件 未找到]。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志: 探索位置 ' C:\ ProgramData \ PostSharp \ 3.1.48 \ bin.Release \ Newtonsoft.Json.dll' 因为此目录已明确添加到搜索路径[文件 未找到]。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志: 探索位置 ' C:\ ProgramData \ PostSharp \ 3.1.48 \ bin.Release \ Newtonsoft.Json.winmd' 因为此目录已明确添加到搜索路径[文件 未找到]。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志: 探测位置' F:\ bin \ release \ TwinkyTalk \ Newtonsoft.Json.exe' 因为此目录已明确添加到搜索路径[文件 未找到]。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志: 找到文件' F:\ bin \ release \ TwinkyTalk \ Newtonsoft.Json.dll'同 身份' newtonsoft.json,版本= 6.0.0.0,文化=中立, publickeytoken = 30ad4fe6b2a6aeed,processorarchitecture = msil'。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志:参考 &f; \ bin \ release \ TwinkyTalk \ Newtonsoft.Json.dll'不匹配 [版本不匹配]。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099: 日志:探测位置 ' F:\ BIN \发布\ TwinkyTalk \ Newtonsoft.Json.winmd'因为这 目录已明确添加到搜索路径[File Not Found]。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志:探测 location' F:\ TwinkyTalk \ obj \ Release \ Newtonsoft.Json.exe'因为这 目录已明确添加到搜索路径[File Not Found]。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志:探测 location' F:\ TwinkyTalk \ obj \ Release \ Newtonsoft.Json.dll'因为这 目录已明确添加到搜索路径[File Not Found]。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志:探测 location' F:\ TwinkyTalk \ obj \ Release \ Newtonsoft.Json.winmd'因为 此目录已明确添加到搜索路径[File Not 发现。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志:探测 location' C:\ Program Files(x86)\ Reference 大会\微软\ Framework.NETFramework \ V4.5.1 \ Newtonsoft.Json.exe' 因为此目录已明确添加到搜索路径[文件 未找到]。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志: 探测位置' C:\ Program Files(x86)\ Reference 大会\微软\ Framework.NETFramework \ V4.5.1 \ Newtonsoft.Json.dll' 因为此目录已明确添加到搜索路径[文件 未找到]。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志: 探测位置' C:\ Program Files(x86)\ Reference 大会\微软\ Framework.NETFramework \ V4.5.1 \ Newtonsoft.Json.winmd' 因为此目录已明确添加到搜索路径[文件 未找到]。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志: 探测位置' C:\ Program Files(x86)\ Reference 大会\微软\ Framework.NETFramework \ V4.5.1 \外立面\ Newtonsoft.Json.exe' 因为此目录已明确添加到搜索路径[文件 未找到]。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志: 探测位置' C:\ Program Files(x86)\ Reference 大会\微软\ Framework.NETFramework \ V4.5.1 \外立面\ Newtonsoft.Json.dll' 因为此目录已明确添加到搜索路径[文件 未找到]。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志: 探测位置' C:\ Program Files(x86)\ Reference 大会\微软\ Framework.NETFramework \ V4.5.1 \外立面\ Newtonsoft.Json.winmd' 因为此目录已明确添加到搜索路径[文件 未找到]。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志: 在GAC中查找Newtonsoft.Json,Version = 4.5.0.0,Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed,processorArchitecture = x86。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志:寻找GAC 对于Newtonsoft.Json,Version = 4.5.0.0,Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed,processorArchitecture = msil。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:日志:寻找GAC 对于Newtonsoft.Json,Version = 4.5.0.0,Culture = neutral, 公钥= 30ad4fe6b2a6aeed。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj: 错误PS0099:日志:程序集' newtonsoft.json,版本= 4.5.0.0, culture = neutral,publickeytoken = 30ad4fe6b2a6aeed'没找到。 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099: ================================================== ============= 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:at PostSharp.Sdk.CodeModel.Domain.GetAssembly(IAssemblyName assemblyName, BindingOptions bindingOptions)1> F:\ TwinkyTalk \ TwinkyTalk.csproj: 错误PS0099:at PostSharp.Sdk.CodeModel.AssemblyRefDeclaration。^ 5YpB0scd(BindingOptions _0)1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:在PostSharp.Sdk.Extensibility.Tasks.MulticastAttributeTask。^ SgrhoGlQ(AssemblyRefDeclaration) _0)1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:在PostSharp.Sdk.Extensibility.Tasks.MulticastAttributeTask。^ + GwnKh4ZYHu3() 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:at PostSharp.Sdk.Extensibility.Tasks.MulticastAttributeTask.Execute() 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:at PostSharp.Sdk.Extensibility.Project.ExecutePhase(字符串阶段) 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:at PostSharp.Sdk.Extensibility.Project.Execute() 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:at PostSharp.Hosting.PostSharpObject.ExecuteProjects() 1> F:\ TwinkyTalk \ TwinkyTalk.csproj:错误PS0099:at PostSharp.Hosting.PostSharpObject.InvokeProject(ProjectInvocation projectInvocation)。
我无法找到"' newtonsoft.json,version = 4.5.0.0,"在项目中,不确定为什么要这样做。
我尝试设置" Build Host" PostSharp项目属性为托管,但仍然有相同的异常。
答案 0 :(得分:6)
当一些第三方库引用旧版本的程序集(在本例中为Newtonsoft.Json)时,通常会发生这种情况。通过在web.config / app.config文件中指定绑定重定向来解决此问题。
<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在哪里查找绑定重定向配置。您可以通过在* .csproj文件中设置 PostSharpHostConfigurationFile 属性来执行此操作:
<PropertyGroup>
<PostSharpHostConfigurationFile>web.config</PostSharpHostConfigurationFile>
</PropertyGroup>
SO上有另一个类似的问题(PostSharp AssemblyLoadException Autofac)和relevant blog post。
答案 1 :(得分:0)
事实证明,虽然异常来自PostSharp,但补救措施是更新所有NuGet包。